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