CakePHP Модель Query Construction - PullRequest
0 голосов
/ 31 июля 2011

Привет, я только начал с CakePHP, и мне интересно, как выполнить определенный запрос поиска.

По сути, у меня есть модель с именем User, которая имеет отношение hasMany к другой модели, называемой ролями.По сути, я хочу выполнить SQL-вызов в соответствии с:

SELECT * ОТ пользователей, ГДЕ ЕСТЬа также.

Но у меня возникают проблемы с выяснением, каков наилучший способ сделать это в CakePHP, кроме прямой записи MySQL.Спасибо!

Ответы [ 2 ]

0 голосов
/ 31 июля 2011

@ Ehtesham: лучше использовать Контейнер Чтобы найти пользователя и связанные записи роли:

$this->User->find('first',array(
    'conditions'=>array('User.id'=>$some_id),
    'contain'=>array('Role')
));

«ВЫБРАТЬ * ОТ ПОЛЬЗОВАТЕЛЕЙ, ГДЕ ЕСТЬ (ВЫБРАТЬ * ОТ РОЛЕЙ, ГДЕ user_id = users.id)»: Если я правильно вас понимаю, вы хотите найти всех пользователей, которые имеют хотя бы одну роль? Если это так, вы должны установить counterCache и добавить еще одно условие к находке 'User.role_count >'=>0

0 голосов
/ 31 июля 2011

в пользовательском контроллере

  $this->User->find('all', array('conditions' => array('User.id' => 'Role.user_id'), 'recursive' => 1));

Если указать рекурсивную 1, все связанные данные также будут извлечены

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...