mitaichik
@mitaichik

Как задать алиас таблицы в joinWith?

Всем привет!

В yii1 при запросе с with таблице релейшена по умолчанию ставился алиас - название релейешна. Можно ли подобное сделать в yii2?

Простой пример: есть таблицы
tbl_post
tbl_user

Я пишу:

User::find()
            ->joinWith('posts')
            ->where(['username' => 'any', 'posts.active' => 1])
            ->all();


В условии post.active работать не будет - так как таблица называется tbl_post. Yii1 прописал бы алиас, но yii2 это не делает.

Можно, конечно, написать 'tbl_post.active' - но это не совсем удобно - это ж приходиться в любом подобном запросе писать имя таблицы...

Подскажите как правильно делать?

Заранее спасибо!
  • Вопрос задан
  • 511 просмотров
Решения вопроса 1
iiifx
@iiifx
PHP, OOP, SOLID, Yii2, Composer, PHPStorm
->joinWith( [ 
    'posts' => function ( ActiveQuery $query ) {
        $query->andWhere( ... );
    }
] )


65d2c-clip-81kb.png?nocache=1
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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