Задать вопрос

Как правильно писать условия в with/joinWith?

Недавно пересел на yii2 и есть вопрос по условиям в with, точнее по добавлению алиасов:

Вот код:

User::find()
            ->with(['address' => function(ActiveQuery $addressQuery){
                $addressQuery->where(['status' => 1]);
            }])
            ->where(['status' => 1])
            ->all();

Я думал, что так как вложенный $addressQuery связан с релейшеном 'address', он сам добавит алиас/таблицу к полю 'status', то есть в запрос уйдёт "address.status", но этого не происходит.

Также в основном запросе было бы логично, что он сам добавит к условию алиас/таблицу, то есть в запрос уйдёт "user.status". По крайней мере, у yii1 такое поведение.

Это я что-то делаю не так или так и должно быть?

И если так и должно быть, есть ли в yii2 возможность сделать так, чтоб он сам добавлял алиас/имя таблицы?
  • Вопрос задан
  • 271 просмотр
Подписаться 4 Оценить 5 комментариев
Помогут разобраться в теме Все курсы
  • Onskills
    PHP: базовый курс
    1 месяц
    Далее
  • HTML Academy
    Бэкенд-разработчик для Addamant
    6 месяцев
    Далее
  • teamcoding
    TC200PY Разработка PHP веб-приложений на Yii2. Шаблон приложения advanced
    3 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 1
bitver
@bitver
https://github.com/yiisoft/yii2/pull/10817
Вообще очень много ответов на этот вопрос в нэте.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы