Добавить условие в hasMany

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
search74
Сообщения: 17
Зарегистрирован: 2014.08.18, 08:30
Контактная информация:

Добавить условие в hasMany

Сообщение search74 »

У одного товара может быть много прикрепленных файлов:

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

public function getAttachedFiles() {
    return $this->hasMany(File::className(), [
        'itemId' => 'id', 
    ]);
}
А как добавить сюда условие? можно ли?
Истина где-то рядом
padlyuck
Сообщения: 302
Зарегистрирован: 2015.02.03, 09:50

Re: Добавить условие в hasMany

Сообщение padlyuck »

hasMany возвращает ActiveQuery, так что у вас полная свобода действий.

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

$this->hasMany()->andWhere();//и т.д. 
Аватара пользователя
search74
Сообщения: 17
Зарегистрирован: 2014.08.18, 08:30
Контактная информация:

Re: Добавить условие в hasMany

Сообщение search74 »

Спасибо Вам за наводку, padlyuck!
Истина где-то рядом
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Добавить условие в hasMany

Сообщение zelenin »

читаем документацию.
ShNURoK
Сообщения: 168
Зарегистрирован: 2012.04.12, 05:44
Контактная информация:

Re: Добавить условие в hasMany

Сообщение ShNURoK »

Можете прям на месте делать $model->getAttachedFiles()->blabla()->all();
Аватара пользователя
vitalik1183
Сообщения: 1675
Зарегистрирован: 2014.07.01, 08:42

Re: Добавить условие в hasMany

Сообщение vitalik1183 »

проще scopes использовать и не делать огород!
Yii2!
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Добавить условие в hasMany

Сообщение zelenin »

vitalik1183 писал(а):проще scopes использовать и не делать огород!
можно сделать то, что просит автор, и не делать огород.
Аватара пользователя
vitalik1183
Сообщения: 1675
Зарегистрирован: 2014.07.01, 08:42

Re: Добавить условие в hasMany

Сообщение vitalik1183 »

вы же мне недавно по точно такой же проблеме советовали скопы юзать, мм?
Yii2!
padlyuck
Сообщения: 302
Зарегистрирован: 2015.02.03, 09:50

Re: Добавить условие в hasMany

Сообщение padlyuck »

уверены что по той же? судя по коду, тс хочет хранить все файлы в одной таблице через отношение многие ко многим. там не обойтись без relations с условием. через скопы делать это геморно.
Аватара пользователя
vitalik1183
Сообщения: 1675
Зарегистрирован: 2014.07.01, 08:42

Re: Добавить условие в hasMany

Сообщение vitalik1183 »

уверен, блять щас тему уже наверно не найти, но поищу.
Yii2!
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Добавить условие в hasMany

Сообщение zelenin »

vitalik1183 писал(а):вы же мне недавно по точно такой же проблеме советовали скопы юзать, мм?
думаю, что не по той же. тем не менее в данном случае лучше сделать скоуп, который надо использовать в связи.
Аватара пользователя
vitalik1183
Сообщения: 1675
Зарегистрирован: 2014.07.01, 08:42

Re: Добавить условие в hasMany

Сообщение vitalik1183 »

ну вопщем речь там была про скоп точно, вы тогда меня еще одернули по этой теме. отсюда сделал вывод что не стоит вешать в связи доп условия а проще перенести в скопы доп условия.
Yii2!
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Добавить условие в hasMany

Сообщение zelenin »

vitalik1183 писал(а):ну вопщем речь там была про скоп точно, вы тогда меня еще одернули по этой теме. отсюда сделал вывод что не стоит вешать в связи доп условия а проще перенести в скопы доп условия.
ну ок. да, скоупы приятнее, если их использовать часто.
padlyuck
Сообщения: 302
Зарегистрирован: 2015.02.03, 09:50

Re: Добавить условие в hasMany

Сообщение padlyuck »

zelenin писал(а):
vitalik1183 писал(а):вы же мне недавно по точно такой же проблеме советовали скопы юзать, мм?
думаю, что не по той же. тем не менее в данном случае лучше сделать скоуп, который надо использовать в связи.
Не могли бы аргументировать? не вижу выгоды.
ShNURoK
Сообщения: 168
Зарегистрирован: 2012.04.12, 05:44
Контактная информация:

Re: Добавить условие в hasMany

Сообщение ShNURoK »

А какая разница использовать скоупы или нет? Это же просто синтаксический сахар :) И к первоначальному вопросу имеет достаточно косвенное отношение.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Добавить условие в hasMany

Сообщение zelenin »

ShNURoK писал(а):А какая разница использовать скоупы или нет? Это же просто синтаксический сахар :) И к первоначальному вопросу имеет достаточно косвенное отношение.
верно.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Добавить условие в hasMany

Сообщение zelenin »

Demon_id писал(а):vitalik1183, zelenin
viewtopic.php?f=19&t=22475&p=133577#p133567

:D
о разных вещах речь. scope/where против function($query) {..} и scope против where.
Аватара пользователя
vitalik1183
Сообщения: 1675
Зарегистрирован: 2014.07.01, 08:42

Re: Добавить условие в hasMany

Сообщение vitalik1183 »

ну епт, значит действительно перепутал)
Yii2!
Ответить