2

我的 CakePHP 应用程序中有两个模型:CompanyUser. 它们与 HABTM 关系相关联。这会创建一个“喜欢”,因此如果 aUser链接到 aCompany则该用户喜欢该公司。

如果查看公司简介页面,如何查看登录用户是否喜欢该公司?我在控制器操作中获取公司详细信息……</p>

<?php
class CompaniesController {

    public function view($slug) {
        $company = $this->Company->findBySlug($slug);
        $this->set(array(
            'company' => $company,
            'is_fan' => ($this->Auth->loggedIn()) ? $this->Company->isFan($this->Auth->user('id')) : false
        ));
    }
}

我的想法是isFan()在我的模型中有一个方法Company——正如你在上面看到的——它将用户 ID 作为参数。但我对我在这种方法中实际投入的内容感到困惑。

4

1 回答 1

1
class Company

    public function isFan($userId, $companyId) {

        $found = $this->Company->CompanyUsers->find('first', array(
            'conditions'=>array(
                'CompanyUsers.user_id'=>$userId,
                'CompanyUsers.company_id'=>$companyId
            )
        );

        return $found != false;

     }

}

基本上,您查询 HABTM 连接表以确定连接是否存在。

于 2012-09-07T15:57:53.937 回答