我被CakePHP难以理解如何在CakePHP中查询数据库并仅在$ data查询表[id]在第二个表中具有匹配的[sub_id]时将内容返回到$ data
标准查询:
$data = $this->Table1->findAll(array("Table1.deleted" => "0"), null, "Table1.id DESC", 25, null, 1);
但我希望在['table2'] ['sub_id']中找到$ data ['Table1'] ['id']时只将值放入$ data
谢谢!
答案 0 :(得分:1)
如果您正确设置了关系,则应自动执行此操作。您可以粘贴Table1和Table2的模型关系设置吗?
答案 1 :(得分:0)
Supernovah -
请为我澄清一件事:你写道,当table1..sub_id中找到table1.id时,你只希望将值放入$ data。你的意思是table2.sub_id是一个外键,链接到table1?
我认为Beau是对的 - 如果你正确地链接了模型,使用HABTM或belongsTo等变量,findAll应该自动从table2中提取相关记录。
最后需要注意的是,模型关联受Model->递归值的影响。如果您在代码中更改了递归属性的值,则会改变允许模型关系在给定查询上的深度。
HTH!
答案 2 :(得分:0)
在模型中,在关系数组中添加:
$hasMany = array(
.....
'required' => true
....
);
这应该使它在sql中进行内连接而不是左连接。希望这会有所帮助。