2012-05-03 5 views
1

У меня есть установка, где есть BooksUsers и Logs. В каждом журнале есть книга и пользователь, и я пытаюсь получить список всех книг, независимо от пользователя, но затем также извлекать журналы, связанные с этой книгой (рекурсивный набор равен 1), но только для получения журналов текущего зарегистрированного пользователя.CakePHP Containable on Assoicate Model

Надеюсь, это ясно. Я попытался с помощью Containable и так:

$this->Book->contain('Log.user_id = 2');

Но, к сожалению, это оставляет книги, для которых пользователь 2 не имеет журналы для. Правильно ли я это делаю, и я просто не использую сдерживаемое должным образом, или я делаю все это неправильно.

Любая помощь приветствуется

ответ

0
$this->Book->Behaviors->attach('Containable'); 

$this->Book->find('all', array(
          'contain' => array(
              'Log.user_id' => 2 
             ) 
         ) 
       ); 
+0

Я не пробовал это еще, но это выглядит как расширенный формат, что у меня есть. Что это делает, что заставляет его действовать по-другому? – Bizarro181

+0

Спасибо, но я просто попробовал это сейчас, и он дает те же результаты, что и моя попытка в моем вопросе. Он возвращает только те книги, которые связаны с журналом, созданным пользователем 2, и оставляют книги без журналов или не имеют никакой связи с пользователем. 2 – Bizarro181

+0

Думайте, что вам нужно будет сделать это в 2 запросах. Один для извлечения всех книг независимо от пользователя, а второй для извлечения журналов, связанных с определенной книгой. – pbond

Смежные вопросы