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

Как в Yii2 разбить выражение в запросе на массив?

Есть длинный запрос
(new Query())->select(...)->from(tab1)->leftJoin('tab2', 'tab1.a = tab2.a AND условие1 AND условие2 AND условие3')

Можно ли вот это 'tab1.a = tab2.a AND условие1 AND условие2 AND условие3' разбить на массив как например с условием where? Пробую по всякому, выдает ошибку.
  • Вопрос задан
  • 91 просмотр
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
Decadal
@Decadal
https://www.yiiframework.com/doc/api/2.0/yii-db-qu...

Note that the array format of where() is designed to match columns to values instead of columns to columns, so the following would not work as expected:
['post.author_id' => 'user.id'], it would match the post.author_id column value against the string 'user.id'.

It is recommended to use the string syntax here which is more suited for a join:

'post.author_id = user.id'
Ответ написан
Комментировать
kimono
@kimono
Web developer
Попробуйте так:
(new Query())
->select(['A.*', 'B.*'])
->from(['A' => MyClass::tableName()])
->leftJoin(['B' => JoinClass::tableName()], ['A.a' => new Expression('B.b')])
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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