HABTM关系中的搜索记录-CakePHP

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

我有一个stores和store\u details表,现在有一个store\u details\u stores表

商店模型具有以下特性:

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不存在。干杯