【问题标题】:$data findAll query in CakePHP checking values from second tableCakePHP 中的 $data findAll 查询检查第二个表中的值
【发布时间】:2009-01-13 06:14:22
【问题描述】:

只有当 $data 查询表 [id] 在第二个表中有匹配的 [sub_id] 时,我才被 CakePHP 难倒如何在 CakePHP 中查询数据库并将内容返回给 $data

标准查询:

$data = $this->Table1->findAll(array("Table1.deleted" => "0"), null, "Table1.id DESC", 25, null, 1);

但我只想在 ['table2']['sub_id'] 中找到 $data['Table1']['id'] 时将值放入 $data

谢谢!

【问题讨论】:

    标签: php mysql cakephp findall


    【解决方案1】:

    如果您的关系设置正确,它应该会自动执行此操作。您可以粘贴 Table1 和 Table2 的模型关系设置吗?

    【讨论】:

      【解决方案2】:

      超新星-

      请为我澄清一件事:您写道,当在 table2.sub_id 中找到 table1.id 时,您只想将值放入 $data。你的意思是table2.sub_id是外键,链接到table1?

      我认为 Beau 是对的——如果您使用 HABTM 或 belongsTo 等变量正确链接了模型,findAll 应该会自动从 table2 中提取相关记录。

      最后需要注意的是,模型关联受 Model->recursive 值的影响。如果您在代码中更改了递归属性的值,它将改变模型关系在给定查询上的允许深度。

      HTH!

      【讨论】:

        【解决方案3】:

        在模型中,在关系数组中添加:

        $hasMany = array(
        .....
        'required' => true
        ....
        );
        

        这应该使它在 sql 中进行内部联接而不是左联接。希望这会有所帮助。

        【讨论】:

          猜你喜欢
          • 2015-06-03
          • 2020-03-09
          • 2018-12-01
          • 2013-11-01
          • 2019-03-12
          • 2022-11-30
          • 1970-01-01
          • 2016-07-03
          • 1970-01-01
          相关资源
          最近更新 更多