cakePHP,模型递归

时间:2010-02-10 05:44:56

标签: cakephp models

我有一些模型,都有适当命名的模型文件。

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

所有相关链接。问题是,当我在AppModelvar_dump时,递归模型无法附加到所有关系,并且由于某种原因返回$this->PropertyImage数据类型。当我执行var_dump($this->Property);时,我会获得数据类型:Property

这里发生了什么,会导致这种情况发生?另外我该如何解决这个问题呢?

2 个答案:

答案 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手册中所述。