Есть ли простой способ добавления пользовательских полей в модель? Скажем, у меня есть таблица «пользователь» с 3 полями: идентификатор, имя и фамилия. Я хочу это:
$user = User::model()->findByPk(1);
$echo $user->fullName; // echoes name and surname
Обратите внимание: я хочу, чтобы это настраиваемое поле было добавлено через sql, что-то вроде
$c = new CDbCriteria();
$c->select = 'CONCAT("user".name, "user".surname) as fullName';
$user = User::model()->find($c);
Проблема в том, что свойство fullName не установлено.
UPD
вот код для немного более сложной задачи - настраиваемое поле из другой таблицы. Вот как это делается:
<code> $model = Application::model();
$model->getMetaData()->columns = array_merge($model->getMetaData()->columns, array('fullName' => 'CONCAT("u".name, "u".surname)'));
$c = new CDbCriteria();
$c->select = 'CONCAT("u".name, "u".surname) as fullName';
$c->join = ' left join "user" "u" on "t".responsible_manager_id = "u".id';
$model->getDbCriteria()->mergeWith($c);
foreach ($model->findAll() as $o) {
echo '<pre>';
print_r($o->fullName);
echo '
';
}