cakePHP,模型递归

cakePHP,模型递归,cakephp,models,Cakephp,Models,我有几个模型,都有适当命名的模型文件 $this->Property->PropertyImage->Image->read(); 所有这些都相应地联系在一起。问题是,递归模型无法附加到所有关系,并且由于某种原因,在我对$this->PropertyImage执行var_转储时返回AppModel数据类型。当我执行var_dump$this->Property时;我得到的数据类型是:Property 这里发生了什么,是什么导致了这一切?还有,如何解决此问题?您的应用程序

我有几个模型,都有适当命名的模型文件

$this->Property->PropertyImage->Image->read();
所有这些都相应地联系在一起。问题是,递归模型无法附加到所有关系,并且由于某种原因,在我对$this->PropertyImage执行var_转储时返回AppModel数据类型。当我执行var_dump$this->Property时;我得到的数据类型是:Property


这里发生了什么,是什么导致了这一切?还有,如何解决此问题?

您的应用程序中是否有PropertyImage模型,或者它是HABTM关联?如果您有一个属性具有ANDBELONGOMANY Image,您需要数据库中的透视表properties\U images,但要从PropertiesController访问图像模型,您需要执行$this->Property->Image,中间不包含任何内容。

基于Marko所说的,如果您有HABTM关系,您最好使用联接表,属性和图像

然后,您只需执行属性->图像->读取/查找,而不是执行属性->属性图像->图像->图像

关于HABTM关系,我没有理解的是如何根据相关模型中的标准进行过滤。例如,您不能这样做:

$this->Property->Image->find( 'all', array( 'conditions' => array( 'Image.id' => 7 ) ) );
相反,您必须将可包含的行为添加到属性模型中,如中的手册所述