ActiveQuery, joinWith, where, двоеточие в ключе

Уже исправленные репорты или принятые предложения
Ответить
astronin
Сообщения: 606
Зарегистрирован: 2012.01.30, 17:46

ActiveQuery, joinWith, where, двоеточие в ключе

Сообщение astronin »

Насколько я знаю, в такой конструкции:

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

->where('user_id = :user_id', [':user_id' => $userId])
необязательно ставить двоеточие в начале ключа массива, и в простых запросах оно работает.
А вот при подключении в joinWith ['conference', 'conference.user'] без указания двоеточия в ключе(['user_id' => ...), sql уже кривой собирается:

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

LEFT JOIN `conferences` ON `table`.`conference_id` = `conferences`.`id` LEFT JOIN `users` ON `conferences`.`1` = `users`.`id` WHERE (1= :1)
Это фича или баг?
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: ActiveQuery, joinWith, where, двоеточие в ключе

Сообщение zelenin »

astronin писал(а):Насколько я знаю, в такой конструкции:

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

->where('user_id = :user_id', [':user_id' => $userId]) 
необязательно ставить двоеточие в начале ключа массива, и в простых запросах оно работает.
А вот при подключении в joinWith ['conference', 'conference.user'] без указания двоеточия в ключе(['user_id' => ...), sql уже кривой собирается:

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

LEFT JOIN `conferences` ON `table`.`conference_id` = `conferences`.`id` LEFT JOIN `users` ON `conferences`.`1` = `users`.`id` WHERE (1= :1) 
Это фича или баг?
http://stackoverflow.com/questions/9778 ... dparam-opt

если : не стоит, то в коде : добавляется, но официально без : не поддерживается, поэтому ставьте :.
Ответить