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

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

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

Сообщение Zhenya » 2013.07.17, 19:01

Нужна помощь в решении следующей задачи. Имеется три таблицы: авторы, книги, жанры и две таблицы для связей авторы-книги, книги-жанры. Тип связей 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 » 2013.07.17, 19:03

$model->books[0]->genres

Zhenya
Сообщения: 4
Зарегистрирован: 2013.07.17, 18:22

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

Сообщение Zhenya » 2013.07.17, 19:07

lancedevnull писал(а):$model->books[0]->genres
Сработало, только таким образом оно берет только для одной первой книги, а их может быть несколько.

Аватара пользователя
ElisDN
Сообщения: 5468
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

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

Сообщение ElisDN » 2013.07.17, 21:13

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

foreach ($model->books as $book){
    ...
} 

Ответить