在我的CakePHP应用程序中,我有三个表:
Businesses,Towns和Categories.
企业可以属于多个城镇和多个类别,因此我创建了连接表hasMany和belongsTo关系.通过使用城镇或类别模型进行搜索时,通过城镇或类别查找商家时,一切正常,但是当我想要搜索特定城镇和特定类别的商家时,我完全陷入困境,例如.伦敦的管道工.
在使用Business模型进行搜索时,这些关联似乎不起作用,并且column not found在尝试使用关联表时出现错误.我认为这将是需要做的事情,但我不能让它发挥作用:
$this->set('listings', $this->Business->find('all', array(
'conditions' => array(
'Business.approved' => 1,
'BusinessesCategory.category_id' => $id,
'BusinessesTown.town_id' => $town_id,
'Business.sasite' => 1
)
Run Code Online (Sandbox Code Playgroud)
你需要加入表来做到这一点.我将举例说明如何使用类别,你可以自己做镇.
$this->Business->find("all", array(
"joins" => array(
array(
"table" => "businness_categories",
"alias" => "BusinessesCategory",
"type" => "LEFT",
"conditions" => array(
"Businesses.id = BusinessesCategory.business_id"
)
),
array(
"table" => "categories",
"alias" => "Category",
"type" => "LEFT",
"conditions" => array(
"BusinessesCategory.category_id = Category.id"
)
)
),
'conditions' => array(
'Business.approved' => 1,
'Category.id' => $id,
)
));
Run Code Online (Sandbox Code Playgroud)
您还可以使用某种行为为您执行此操作:https: //github.com/Scoup/SuperJoin
| 归档时间: |
|
| 查看次数: |
15891 次 |
| 最近记录: |