我有三个表,我想知道什么是正确的“查找”命令,以根据所选类别提取正确的汽车模型。
Category table
---------------------
Cat_ID Category
1 Sedan
2 SUV
3 Truck
Manufacturers tables
--------------------------
CAR_ID Cat_ID Manufacturer
1 1 BMW
2 1 BMW
3 2 Mercedes
4 3 Dodge
Model table
--------------
CAR_ID Model
1 i320
2 i540
3 GL320
4 RAM
我能够根据制造商选择合适的汽车,但是当我尝试根据类别选择合适的汽车时,这是行不通的。
$catid='Sedan';
$car_id = $this->car->find('all',array('fields' => array('car.id'),'conditions' => array('car.category_id' => $catid),'order' => array('car.id' => 'desc')));
$models = $this->Model->find('all',array('conditions' => array('Model.car_id'=>$car_id),'order' => array('Model.id' => 'desc')));
如果要选择Sedan(宝马i32和i520车型),我希望输出显示。
答案 0 :(得分:0)
使用连接语句
我不知道您使用的是哪个版本的cakephp,但是我正在使用cakephp 2.0。
await
如果您想限制要使用的类别,请使用以下条件
$this->Category->find('all',[
'joins' => [
[
'table' => 'Manufacturers',
'alias' => 'Manufacturers',
'type' => 'LEFT',
'conditions' => [
'Category.Cat_ID = Manufacturers.Cat_ID'
]
],
[
'table' => 'Model',
'type' => 'LEFT',
'conditions' => [
'Model.CAR_ID = Manufacturers.CAR_ID'
]
]
]
]);