【问题标题】:cakephp join does not return associated model datacakephp join 不返回关联的模型数据
【发布时间】:2013-06-23 21:18:05
【问题描述】:

我在 cakephp 应用程序中有三个模型:ModelXModelYModelZ。 ModelX 的表具有字段 parent_id、lft 和 rght。模型之间的关联如下:

ModelX hasOne ModelY
ModelY belongsTo ModelX
ModelY hasMany ModelZ
ModelZ belongsTo ModelY

我有一个关于 ModelX 的查询,它连接到 ModelY 和 ModelZ,如下所示:

$this->ModelX->find('all', array(
            'joins' => array(
                    array(
                            'table' => 'modelys',
                            'alias' => 'ModelY1',
                            'type' => 'left',
                            'conditions' => array(
                                    'ModelX.id = ModelY1.modelx_id',
                            )
                    ),
                    array(
                            'table' => 'modelzs',
                            'alias' => 'ModelZ1',
                            'type' => 'left',
                            'conditions' => array(
                                    'ModelY1.id = ModelZ1.modely_id'
                            )
                    )
            )

));

在此查询的结果中,我有 ModelX、ModelY 的数据,但没有 ModelZ,我不知道为什么!!。请问有人可以看看这个查询有什么问题吗?

【问题讨论】:

    标签: php cakephp cakephp-1.3


    【解决方案1】:

    我认为您的查询没有问题。使用 model_id(约定优于配置)似乎更实用,但如果您的设置需要它,请保留它。

    只需在查询之前添加此内容。

    $this->ModelX->recursive = 2;
    

    CakePHP Docs 上,您需要为所有链接模型设置递归。请注意,这可能会更慢和/或返回不需要的数据。

    【讨论】:

      猜你喜欢
      • 2020-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-19
      相关资源
      最近更新 更多