2

CakePHPアプリには2つのモデルがあります:CompanyUser。それらはHABTM関係とリンクしています。これにより「いいね」が作成されるため、aUserがthenにリンクされている場合Company、そのユーザーはその会社を高く評価します。

会社のプロフィールページを表示している場合、ログインしているユーザーが会社を気に入っているかどうかを確認するにはどうすればよいですか?コントローラアクションで会社の詳細を取得します…</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
        ));
    }
}

私の考えは、上記のように、ユーザーIDをパラメーターとして受け取るisFan()メソッドをモデルに含めることでした。Companyしかし、私は実際にこのメソッドに何を入れるかについて行き詰まっています。

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 に答える