Cakephp에서 관련 필드에서 조건을 어떻게 찾을 수 있습니까?
문제
몇 가지 다른 모델에 속하는 모델 (목록)이 있습니다. 관련 모델 (OpenHouses)이 조건이있는 모든 모델을 찾고 싶습니다. 'HASE 및 SOLES'는 모델 파일에서 설정됩니다. 목록 Hasmany Openhouses 및 Openhouses는 리스팅에 속합니다. (그리고 리스팅에는 데이터를 원하는 몇 가지 다른 모델에 많은 도움이됩니다.)
나는 노력했다.
$this->Listing->find('all',
array('conditions' =>
array('Openhouse.date >' => $openhouse_start->format('Y-m-d H:i:s'),
'Openhouse.date <' => $openhouse_end->format('Y-m-d H:i:s'))
));
그러나 아무 소용이 없습니다.
Error: 1054: Unknown column 'Openhouse.date' in 'where clause
오픈 하우스 모델을 검색하고 관련 목록을 얻을 수 있지만 데이터는 다른 형식으로 반환되며 다른 모델에서 데이터를 얻으려면 재귀 방식을 전환해야합니다. (그리고 나는 중복 오픈 하우스 데이터로 끝납니다!). 필요한 경우 더 많은 코드 예제를 게시 할 수 있습니다.
내 질문은 기본적으로 오픈 하우스 모델을 쿼리하고 그와 함께 살아야합니까, 아니면 관련 모델에 조건을 올바르기위한 구문입니까?
해결책
이 시도:
$this->List->find('all', array(
'contain' => array(
'Openhouse.conditions' => array(
'Openhouse.date >' => $openhouse_start->format('Y-m-d H:i:s'),
'Openhouse.date <' => $openhouse_end->format('Y-m-d H:i:s'))
)
)
)
다른 팁
링크 된 모델이 많으면 2로 재귀 설정이 원하는 것보다 더 많은 데이터를 가져올 수 있습니다.
그것이 사실이라면 Mavarro가 말한 것에 대한 대안이 있습니다. 포함 가능한 행동:
$this->Listing->find
(
'all',
array
(
'conditions' => array
(
'Openhouse.date >' => $openhouse_start->format('Y-m-d H:i:s'),
'Openhouse.date <' => $openhouse_end->format('Y-m-d H:i:s')
),
'contain' => array('Openhouse')
)
);
추가 해보세요$this->Listing->recursive = 2;
모든 것을 찾기 위해 전화하기 전에. 저것 ~해야 한다 목록 모델에서 오픈 하우스 모델에 액세스 할 수있는 통화 전에 테이블을 연결하십시오.
$this->List->find('all', array(
'contain' => array(
'conditions' => array(
'Openhouse.date >' => $openhouse_start->format('Y-m-d H:i:s'),
'Openhouse.date <' => $openhouse_end->format('Y-m-d H:i:s')
),
'order' => array('Openhouse.date DESC')
)
)
)
제휴하지 않습니다 StackOverflow