model()->with('otherModel')

Все что вы хотели знать об Yii, но боялись спросить

Модератор: core team

Roo
Новенький
Сообщения: 6
Зарегистрирован: Пт авг 31, 2012 3:33 pm

Сообщение Roo » Ср сен 05, 2012 12:49 pm

Подскажите пожалуйста, как можно задать фильтр для загрузки relation моделей ?

мы используем модель blog и модель post.
выбираю я blog:

$blog = Blog::model()->with('post')->....

получается что в $blog->post будет содержать все посты данного блога.

А как сделать фильтр постов например по статусу, т.е. я не хочу получать полный список постов, а только опубликованные например.

боюсь что использование scopes в модели Post не даст желаемого результата:

Blog::model()->with('post', ..... ) ->model_post_filter_published()->...



Единственный вариант я так понимаю создавать отдельную модель постов с указанием блога, но это уже не то..)
Хочется узнать возможно ли решение через использование модели блога.

Аватара пользователя
xoma
Администратор
Сообщения: 1948
Зарегистрирован: Ср авг 22, 2012 8:54 am
Контактная информация:

Сообщение xoma » Ср сен 05, 2012 2:17 pm

Как-то вот так можно:

Post::model()->with(array(
'author'=>array('select'=>'id, name'),
'comments'=>array('condition'=>'approved=1', 'order'=>'create_time'),
))->findAll();

http://www.yiiframework.com/doc/api/1.1/CActiveRecord#with-detail

Или же в моделе Post создать defaultScope

А еще можно в Post создать scope "active" как пример и вызывать вот так:

Post::model()->recent()->with('author:active')->findAll();
http://yupe.ru/subscribe - интересное от команды "Юпи!"

Roo
Новенький
Сообщения: 6
Зарегистрирован: Пт авг 31, 2012 3:33 pm

Сообщение Roo » Чт сен 06, 2012 10:23 am

Спасибо ОГРОМНОЕ!!
то что нужно!!
Post::model()->recent()->with('author:active')->findAll();

Аватара пользователя
xoma
Администратор
Сообщения: 1948
Зарегистрирован: Ср авг 22, 2012 8:54 am
Контактная информация:

Сообщение xoma » Чт сен 06, 2012 11:44 am

Пожалуйста =)
http://yupe.ru/subscribe - интересное от команды "Юпи!"


Вернуться в «Yii 1.x и Yii 2.x»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость