Я использую CakePHP 2.2.2 У меня есть 3 стола: рестораны, кухни и кухни_restaurants - соедините таблицу для HABTM.
В модели ресторана у меня есть:
public $hasAndBelongsToMany = array(
'Kitchen' =>
array(
'className' => 'Kitchen',
'joinTable' => 'kitchens_restaurants',
'foreignKey' => 'restaurant_id',
'associationForeignKey' => 'kitchen_id',
'unique' => true,
'conditions' => '',
'fields' => 'kitchen',
'order' => '',
'limit' => '',
'offset' => '',
),
Проблема в том, что у меня есть отдельный контроллер для моей главной страницы, в котором мне нужно получить данные из этих моделей со сложными условиями.
Я добавил
public $uses = array('Restaurant');
на мой главный контроллер страницы, и вот часть, в которой мне нужны ваши советы.
Мне нужно выбрать только те рестораны, где кухня = $id. Я попытался добавить
public function index() {
$this->set('rests', $this->Restaurant->find('all', array(
'conditions' => array('Restaurant.active' => "1", 'Kitchen.id' => "1")
)));
}
и я получил SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец в ошибке "where clause". Очевидно, мне нужно получить данные из "таблицы соединения HABTM", но я не знаю, как это сделать.