activequery where со сложным условием и использованием bind-параметров

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Maksat1991
Сообщения: 57
Зарегистрирован: 2016.10.16, 00:15

activequery where со сложным условием и использованием bind-параметров

Сообщение Maksat1991 »

Вот такой запрос работает:

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

$record = Table::find()
                ->where([
                    'row1'=>1,
                    'row2'=>2,
                    'row3'=>3,
                    'row4'=>4,
                    'row5'=>5,
                ])
                ->one();
А вот такой уже нет:

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

$record = Table::find()
                ->where([
                    'row1'=>':row1',
                    'row2'=>2,
                    'row3'=>3,
                    'row4'=>4,
                    'row5'=>5,
                ])
                ->addParams([':row1'=>1])
                ->one();
Так тоже пробовал:

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

$record = Table::find()
                ->where([
                    'row1'=>':row1',
                    'row2'=>2,
                    'row3'=>3,
                    'row4'=>4,
                    'row5'=>5,
                ])
                ->params([':row1'=>1])
                ->one();
Не помогает.

Скажите, почему я не могу в where задавать условие массивом и использовать bind-переменные, как во втором случае?
Аватара пользователя
rodion_zlobin
Сообщения: 207
Зарегистрирован: 2017.01.11, 16:33

Re: activequery where со сложным условием и использованием bind-параметров

Сообщение rodion_zlobin »

используйте yii\db\Query. Кстати, а какой сакральный смысл всего этого?
mkramer
Сообщения: 531
Зарегистрирован: 2014.12.14, 13:02

Re: activequery where со сложным условием и использованием bind-параметров

Сообщение mkramer »

А зачем вам биндить что-то? Когда вы передаёте массив, yii2 сам позаботится о том, чтобы всё было безопасно.

И есть такой вариант http://www.yiiframework.com/doc-2.0/gui ... ing-format, если уж очень хочется биндить :)
Maksat1991
Сообщения: 57
Зарегистрирован: 2016.10.16, 00:15

Re: activequery where со сложным условием и использованием bind-параметров

Сообщение Maksat1991 »

mkramer писал(а): 2017.05.25, 23:25 А зачем вам биндить что-то? Когда вы передаёте массив, yii2 сам позаботится о том, чтобы всё было безопасно.

И есть такой вариант http://www.yiiframework.com/doc-2.0/gui ... ing-format, если уж очень хочется биндить :)
Да, я уже понял, что если запросы писать через массив, то Yii2 сам будет биндить. Но все-равно спасибо.
Ответить