Как в Query или ActiveQuery выбрать константное значение, не из столбца?

83
29 марта 2021, 19:40

В обычном запросе SELECT можно писать любые выражения для выборки, даже не относящиеся к какой-либо колонке какой-либо таблице. Например я могу написать SELECT 123 as t и это коректно вернет значение с именнованной колонкой. Как тоже самое сделать в Query или ActiveQuery?

К примеру есть у класса константа const TYPE_GET = 'get', и нужно её подставить в запрос. Сейчас я использую костыль в виде CONCAT или new Expression(...) (https://www.yiiframework.com/doc/api/2.0/yii-db-expression):

(new Query())
    ->select(['name', 'text', 'CONCAT(\'' . MyClass::TYPE_GET . '\', \'\', \'\') as alias'])    
    ->where(['id' => $id]);

Как записать это без такой страшной конструкции?

Answer 1
(new Query())
    ->select(['name', 'text', new Expression('123 as t')])    
    ->where(['id' => $id]);
READ ALSO
Отправка tcp пакета на сервер

Отправка tcp пакета на сервер

Есть код который отправляет tcp пакет на сервер, но он отправляет только один раз, а после просто молчитНужно чтобы клиент мог отправлять tcp пакеты...

104
Как установить роль пользователю в Java EE?

Как установить роль пользователю в Java EE?

При логине пользователя я хочу установить ему роль на время сессииКак это можно сделать?

101
Java, перевод exception на русский язык

Java, перевод exception на русский язык

Есть ли какая-то возможность перевести стандартные exception на русский язык? Те

135