Cakephp에서 관련 필드에서 조건을 어떻게 찾을 수 있습니까?

StackOverflow https://stackoverflow.com/questions/813294

  •  03-07-2019
  •  | 
  •  

문제

몇 가지 다른 모델에 속하는 모델 (목록)이 있습니다. 관련 모델 (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')
                      )
                             )
)
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top