CakePHP: Как получить данные из двух таблиц с помощью внутреннего соединения?

У меня две таблицы в базе данных, одна как user(id,first_name,last_name) , а другая – как location(id,country) .

Мне нужно выполнить внутреннее соединение с этими двумя таблицами на основе условия user.id = location.id , а результат запроса должен содержать столбцы first_name , last_name и country .

Я попробовал следующий запрос в CakePHP:

 $this->set('users', $this->User->find('list', array( 'fields' => array( 'User.id', 'User.first_name', 'location.country' ), array( 'joins' => array( array( 'table' => 'location', 'alias' => 'location', 'type' => 'INNER', 'conditions' => array('User.id = location.id') ) ) ) ))); 

который, однако, производит эту ошибку:

Неизвестный столбец «location.country» в «списке полей»

В чем может быть проблема?

Я думаю, что ваш синтаксис неверен, потому что массив параметров должен иметь ключ для соединений. У вас появляется дополнительный array . Пытаться:

 $this->set('users',$this->User->find('list', array( 'fields' => array('User.id', 'User.first_name','location.country'), 'joins' => array(array('table' => 'location', 'alias' => 'location', 'type' => 'INNER', 'conditions' => array('User.id = location.id') )) ) ));