3
我有三個表: 店 deliverable_sets 城市如何加入CakePHP的三個表,其中一人是HABTM表
有如下關係:
//Store
public $hasMany = array(
'DeliverableSet' => array(
'className' => 'DeliverableSet',
'foreignKey' => 'store_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
)
);
//DeliverableSet
public $belongsTo = array(
'Store' => array(
'className' => 'Store',
'foreignKey' => 'store_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
//DeliverableSet
public $hasAndBelongsToMany = array(
'City' => array(
'className' => 'City',
'joinTable' => 'cities_deliverable_sets',
'foreignKey' => 'deliverable_set_id',
'associationForeignKey' => 'city_id',
'unique' => 'keepExisting',
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'finderQuery' => '',
)
);
現在,我希望獲取列表通過deliverradble_set分配到商店的所有城市。
我試過這段代碼,但它不起作用。
$data = $this->DeliverableSet->Store->find('all', array(
'joins' => array(
array(
'table' => 'deliverable_sets',
'alias' => 'DeliverableSetJoin',
'type' => 'INNER',
'conditions' => array(
'DeliverableSetJoin.store_id = Store.id'
)
),
array(
'table' => 'cities_deliverable_sets',
'alias' => 'CityDeliverableSetJoin',
'type' => 'INNER',
'conditions' => array(
'CityDeliverableSetJoin.deliverable_set_id = DeliverableSetJoin.id'
),
array(
'table' => 'cities',
'alias' => 'CityJoin',
'type' => 'INNER',
'conditions' => array(
'CityDeliverableSetJoin.city_id = CityJoin.id'
)
)
),
'conditions' => array(
'Store.id' => 11
),
'fields' => array('DeliverableSetJoin.id', 'Store.id','CityJoin.id'),
'order' => 'Store.created DESC'
)));
debug($data);exit;
基本上我要運行該SQL在CakePHP的find方法:它的工作原理
$set = $this->DeliverableSet->query('select cities_deliverable_sets.city_id from stores
inner join deliverable_sets on deliverable_sets.store_id = stores.id
inner join cities_deliverable_sets on cities_deliverable_sets.deliverable_set_id = deliverable_sets.id
WHERE stores.id = 11
order by stores.id asc');
是什麼異常被拋出?特別是什麼是異常狀態的SQL語句?同時說明確切的CakePHP版本。 – DIDoS
@ele。感謝您的答覆。經過一番研發,我找到了解決方案。 –