Столкнулся с такой не понятной проблемой.
Создан класс:
class MyClass extends CActiveRecord
{
public static function model($className=__CLASS__) { return parent::model($className); }
public function tableName() { return 'my_table'; }
public function attributeLabels()
{
return array(
'f1'=>'Поле 1',
'f2'=>'Поле 2',
'f3'=>'Поле 3',
'f4'=>'Поле 4',
'f5'=>'Поле 5',
'f6'=>'Поле 6',
'f7'=>'Поле 7'
);
}
}
Далее, в контроллере я создаю объект, таким образом:
$obj=null;
....какие-то действия...
if(Условие)
{
$obj=new MyClass();
...Какие то действия по формированию массива $row с атрибутами...
$obj->attributes=$row;
}
else $obj=MyClass::model()->findByPk(1);
И вот тут, в дальнейшем происходит не понятное. Если объект созданн по условию, т.е. через присвоение атрибутов, то все нормально: при запросе $obj->attributeLabels() - возвращается массив с теми значениями, которые были определены ранее.
А если объект создан не по условию, т.е. через model() - то $obj->attributeLabels() - возвращает пустой массив.
Как такое получается? И что делать?