我有几个模型,都有适当命名的模型文件。
$this->Property->PropertyImage->Image->read();
都相应地联系起来。问题是,递归模型无法附加到所有关系,并且由于某种原因AppModel在我执行var_dumpon时返回数据类型$this->PropertyImage。当我这样做时,var_dump($this->Property);我得到数据类型:Property.
这是怎么回事,什么会导致这种情况发生?另外我该如何解决这个问题?
基于 Marko 所说,如果您有 HABTM 关系,最好的选择是使用连接表 properties_images。
然后,无需执行 Property->PropertyImage->Image,您只需执行 Property->Image->read/find()。
关于 HABTM 关系,我无法理解的是如何根据相关模型中的标准进行过滤。例如,您不能这样做:
$this->Property->Image->find( 'all', array( 'conditions' => array( 'Image.id' => 7 ) ) );
相反,您必须将 Containable 行为添加到 Property 模型中,如http://book.cakephp.org/view/474/Containable手册中所述。
您的应用程序中有模型还是 HABTMPropertyImage关联?如果您有一个包含有AndBelongsToMany Image 的属性,您需要在数据库中有一个数据透视表properties_images($this->Property->Image