我被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,而不是左內連接加入。希望這可以幫助。