2010-02-10 3 views
0

몇 가지 모델이 있으며, 모두 적절하게 명명 된 모델 파일이 있습니다.cakePHP, Model Recursion

$this->Property->PropertyImage->Image->read(); 

모든 링크가 이에 따라 연결됩니다. 문제는 재귀 모델을 모든 관계에 추가 할 수 없기 때문에 var_dump$this->PropertyImage을 입력하면 어떤 이유로 데이터 형식이 AppModel으로 반환된다는 것입니다. 내가 var_dump($this->Property); 할 때 데이터 형식을 얻을 : Property.

무슨 일이 벌어지고 있는데, 어떻게 될까요? 또한이 문제를 어떻게 해결할 수 있습니까?

답변

0

PropertyImage 모델을 응용 프로그램에 포함 시키거나 HABTM 연결입니까? 데이터베이스에 피벗 테이블 (properties_images)이 필요하지만 PropertiesController에서 Image 모델에 액세스하려면 $this->Property->Image을 중간에 입력해야합니다.

0

Marko가 말한 것을 바탕으로 HABTM 관계가있는 경우 가장 좋은 방법은 조인 테이블 property_images를 사용하는 것입니다.

그러면 Property-> PropertyImage-> Image를 수행하는 대신 Property-> Image-> read/find()를 수행하면됩니다.

HABTM 관계에 대해 이해하지 못한 것은 관련 모델의 기준에 따라 필터링하는 방법입니다. 예를 들어, 당신은이 작업을 수행 할 수 없습니다 http://book.cakephp.org/view/474/Containable에서의 사용 설명서에 설명 된 바와 같이

$this->Property->Image->find('all', array('conditions' => array('Image.id' => 7))); 

는 대신에, 당신은 속성 모델에 함유 성 동작을 추가해야합니다.