HABTM关系中的搜索记录-CakePHP
我有一个stores和store\u details表,现在有一个store\u details\u stores表 商店模型具有以下特性:HABTM关系中的搜索记录-CakePHP,cakephp,has-and-belongs-to-many,Cakephp,Has And Belongs To Many,我有一个stores和store\u details表,现在有一个store\u details\u stores表 商店模型具有以下特性: public $hasAndBelongsToMany = array('StoreDetail'); public $hasAndBelongsToMany = array('Store'); StoreDetail模型具有以下功能: public $hasAndBelongsToMany = array('StoreDetail'); publi
public $hasAndBelongsToMany = array('StoreDetail');
public $hasAndBelongsToMany = array('Store');
StoreDetail模型具有以下功能:
public $hasAndBelongsToMany = array('StoreDetail');
public $hasAndBelongsToMany = array('Store');
当我在stores_控制器中尝试以下查询时,我收到一个sql错误。由于某些原因,store_details表没有自然联接。这是预期的行为吗?我需要手动加入此表吗
$this->Store->find('all', array('conditions' => array('StoreDetail.name' => 'Parking')));
这是预期的行为。您需要根据您的条件设置bindModel调用,或者您可以为联接表创建一个模型并直接查询该模型 见:
我建议在进行查找之前,使用bindModel方法将条件应用于关联
/**
* Apply a condition to the association
*/
$this->Store->bindModel(array(
'hasAndBelongsToMany' => array(
'StoreDetail' => array('conditions' => array('StoreDetail.name'=>'Parking'))
)));
/**
* Find all Stores that have an associated StoreDetail.name of 'Parking'
*/
$this->Store->find('all');
发布SQL+Cake错误和查询日志肯定会有帮助。它给出了一个SQL错误,因为StoreDetail没有加入,所以StoreDetail.name不存在。干杯