2012-09-07 3 views
2

내 CakePHP 앱에는 두 모델이 있습니다 : CompanyUser. 이들은 HABTM 관계와 연결되어 있습니다. 이렇게하면 "좋아요"가 만들어 지므로 UserCompany에 연결되면 해당 사용자는 해당 회사를 좋아합니다.CakePHP에서 객체 팬인지 여부를 찾는 방법은 무엇입니까?

회사 프로필 페이지를 볼 경우 어떻게 로그인 한 사용자가 회사를 좋아하는지 확인할 수 있습니까? 내가

<?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 
     )); 
    } 
} 

내 생각 내 CompanyisFan() 방법을 가지고 있었다 ... 내 컨트롤러 액션에 회사 정보를 가져 모델로 볼 수 있습니다 위의 즉 매개 변수로 사용자 ID를 취할 것입니다. 그러나 나는이 방법에 실제로 넣었던 것에 관해 붙어있다.

답변

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 조인 테이블을 쿼리하여 연결이 존재하는지 확인합니다.

관련 문제