2013-07-28 3 views
0

내 뷰에서 내 UserController에 다음을 갖습니다.Assosciated 모델에서 필터링 할 수 없습니다. cakePHP

$this->User->recursive = 2; 
    $options = array('conditions' => array('User.' . $this->User->primaryKey => $id, 'Step.site_id' => $this->Auth->user('site_id'))); 
    $this->set('user', $this->User->find('first', $options)); 

필터는 User 모델과 완벽하게 일치하지만 단순히 Step.site_id 부분을 무시하고 필드가 존재하지 않는다고 말하는 오류가 있습니다.

내가 잘못 가고있는 포인터가 있습니까? cakephp 2를 사용하고 있습니다. *

나는 contain을 사용하는 것에 관한 view question을 이미 읽었지만 제대로 작동하지 못했습니다.

+0

사용자와 단계는 어떻게 연관되며, 오류 메시지는 무엇이며, 결과로 예상되는 것은 무엇입니까? – AD7six

+0

사용자가 여러 단계를 수행했지만 스키마에 Step.site_id가 존재하지 않는다는 오류가 발생했습니다. – AshHimself

+0

오류 메시지를 바꾸지 마십시오 (스키마는 오류 메시지와 해당 질문을 복사하여 질문에 붙여 넣음). 그게 기대 될거야. 거기에 참여하지 않을 것이기 때문에 정확히 1) 모든 사용자와 step_id와 일치하는 단계 2) site_id와 일치하는 단계 레코드가있는 사용자 만? – AD7six

답변

0

내 생각 엔 - "단계"를 hasMany의 관계에 대한 적절한 별칭되지는

이 일을합니까. (더 많은 정보를 공유해야이 문제는 모델의 정의와 데이터베이스 테이블 정의를 포함한다)?

$this->User->recursive = 2; 
$options = array('conditions' => array('User.' . $this->User->primaryKey => $id, $this->User->Step->alias . '.site_id' => $this->Auth->user('site_id'))); 
$this->set('user', $this->User->find('first', $options)); 
+0

'작동합니까? 'hasMany : 아니요. 이 작업을 수행하려면 조인이 필요합니다. – AD7six

+0

네, 고마워요. 나는 당신의 대답을 받아들이는 것을 잊었다. – AshHimself

관련 문제