В YII2-приложении есть некая ActiveRecord-модель
SomeModel, которая описывает таблицу
some_table. Как сделать, чтобы в методе select я могу указать SQL-конструкцию
CASE WHEN?
Когда я пишу это:
$data = SomeModel::find()
->select([
'some_table.region_id',
'CASE WHEN some_table.region_id IN (1,2,3,4) THEN true ELSE false END AS region_in_range'
])
->where([
'some_table.id' => $id,
])
->all()
и пытаюсь получить значение поля
region_in_range в цикле:
foreach($data as $item) {
echo $item->region_in_range;
}
то YII пишет ошибку
Getting unknown property region_in_range.
Модель SomeModel имеет стандартный вид:
class SomeModel extends ActiveRecord {
public static function tableName() {
return 'same_table';
}
}
Как сделать так, чтобы поле
region_in_range стало известно YII? И вообще, можно ли в принципе с помощью ActiveRecord прописывать CASE WHEN? Может я вообще не туда засунул CASE WHEN?
Помогите разобраться, как совместить CASE WHEN и ActiveRecord. Либо это можно достичь только средствами Query?
Спасибо.