【问题标题】:cakePHP, Model RecursioncakePHP,模型递归
【发布时间】:2010-02-10 05:44:56
【问题描述】:

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

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

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

这是怎么回事,什么会导致这种情况发生?另外我该如何解决这个问题?

【问题讨论】:

    标签: cakephp models


    【解决方案1】:

    您的应用程序中有PropertyImage 模型还是HABTM 关联?如果您的 Property 具有 hasAndBelongsToMany Image,则需要在数据库中创建一个数据透视表 (@​​987654322@),但要从 PropertiesController 访问 Image 模型,您需要使用 $this->Property->Image,而两者之间没有任何关系。

    【讨论】:

      【解决方案2】:

      根据 Marko 所说,如果您有 HABTM 关系,最好的选择是使用连接表 properties_images。

      然后,您只需执行 Property->Image->read/find(),而不是执行 Property->PropertyImage->Image。

      我对 HABTM 关系的理解是如何根据相关模型中的条件进行过滤。例如,您不能这样做:

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

      相反,您必须将 Containable 行为添加到 Property 模型,如手册 http://book.cakephp.org/view/474/Containable 中所述。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-31
        • 1970-01-01
        相关资源
        最近更新 更多