В обычном запросе 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]);
Как записать это без такой страшной конструкции?
(new Query())
->select(['name', 'text', new Expression('123 as t')])
->where(['id' => $id]);
Продвижение своими сайтами как стратегия роста и независимости