У меня есть запрос, например, например
$criteria = new CDbCriteria();
$criteria->select = array(
'CASE
when userid is not null then userid
end
as A',
'CASE
when userid is not null then \'D\'
end
as H');
$result = MyModel::model()->findAll($criteria);
когда я получаю результат $ result, я получаю объекты в каждом из этих результатов, и я могу получить только фактический столбец таблицы, например, например
$obj->USERID
Я хочу получить псевдоним, который я использовал в инструкции select, например,
$obj->A OR $obj->H
но если я это сделаю, я получаю сообщение об ошибке, потому что A и H не являются свойствами MyModel
можно ли получить "как" имена в виде столбцов таблицы из результата findAll?, если да, то как?
В CActiveRecord свойства автоматически распознаются на основе схемы таблицы, на которой базируется модель, как вы можете видеть здесь.
Таким образом, самый простой способ добавления свойств - добавить поддельные столбцы в таблицу, на которой базируется модель.
Другой способ - переопределить метод attributeName()
. Вы можете добавить свойства к модели. см. здесь.