Сквозной запрос

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Zhenya
Сообщения: 4
Зарегистрирован: 2013.07.17, 18:22

Сквозной запрос

Сообщение Zhenya »

Нужна помощь в решении следующей задачи. Имеется три таблицы: авторы, книги, жанры и две таблицы для связей авторы-книги, книги-жанры. Тип связей MANY_MANY. В моделе автор записана связь с моделью Книги.

Код: Выделить всё

return array(
            'books'=>array(self::MANY_MANY, 'Book',
                'authors_books(id_author, id_book)',
            ), 
В Книгах связь с жанрами

Код: Выделить всё

return array(
            'genres'=>array(self::MANY_MANY, 'Genre',
                'books_genres(id_book, id_genre)'),
        ); 
Для определенного автора я вынимаю книги следующим образом

Код: Выделить всё

$model = Author::model()->findByPk(1);
$author = $model->books;
 
таким образом я получаю книги, как дописать еще выбор жанра?
Конструкция плана

Код: Выделить всё

$author = $model->books->genres
не работает.
lancedevnull
Сообщения: 1268
Зарегистрирован: 2013.07.17, 17:37

Re: Сквозной запрос

Сообщение lancedevnull »

$model->books[0]->genres
Zhenya
Сообщения: 4
Зарегистрирован: 2013.07.17, 18:22

Re: Сквозной запрос

Сообщение Zhenya »

lancedevnull писал(а):$model->books[0]->genres
Сработало, только таким образом оно берет только для одной первой книги, а их может быть несколько.
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Сквозной запрос

Сообщение ElisDN »

Код: Выделить всё

foreach ($model->books as $book){
    ...
} 
Ответить