我有一些模型,都有适当命名的模型文件。
$this->Property->PropertyImage->Image->read();
所有相关链接。问题是,当我在AppModel
上var_dump
时,递归模型无法附加到所有关系,并且由于某种原因返回$this->PropertyImage
数据类型。当我执行var_dump($this->Property);
时,我会获得数据类型:Property
。
这里发生了什么,会导致这种情况发生?另外我该如何解决这个问题呢?
答案 0 :(得分:0)
您是否在您的应用程序中使用了PropertyImage
模型,或者它是HABTM协会?如果你有一个具有AndBelongsToMany Image的Property,你需要在数据库中使用一个数据透视表(properties_images
),但是要从PropertiesController访问Image模型,你可以在$this->Property->Image
之间做任何事情。
答案 1 :(得分:0)
以Marko所说的为基础,如果您有HABTM关系,最好的办法是使用连接表properties_images。
然后,而不是做一个Property-> PropertyImage-> Image,你只需要做一个Property-> Image-> read / find()。
我对HABTM关系无法理解的是如何根据相关模型中的条件进行过滤。例如,你不能这样做:
$this->Property->Image->find( 'all', array( 'conditions' => array( 'Image.id' => 7 ) ) );
相反,您必须将可包含行为添加到Property模型,如http://book.cakephp.org/view/474/Containable手册中所述。