Получение скалярного значения атрибута

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Закрыто
nenor
Сообщения: 27
Зарегистрирован: 2013.08.27, 09:45

Получение скалярного значения атрибута

Сообщение nenor » 2013.10.11, 12:51

Доброго времени суток. Зачастую необходимо получить скалярное значение атрибута модели, например:

Код: Выделить всё

$parent=ProfileArt::model()->findByPk($id, array('select'=>'parent'));
Как это можно сделать, в AR, так как я понял, он не наследует CDbCommand и метод queryScalar?

masson
Сообщения: 497
Зарегистрирован: 2012.07.03, 15:59

Re: Получение скалярного значения атрибута

Сообщение masson » 2013.10.11, 13:00

1. Конечно не наследует, иерархии разные.

2. При обращении к атрибуту вы получите его скалярное значение

Код: Выделить всё

$parent=ProfileArt::model()->findByPk($id, array('select'=>'parent'));
$a = $parent->parent;       // тут  
3. AR используется для валидации значений и последующего сохранения. Если этого не требуется, а требуется только "получить скалярное значение атрибута" - пользуйте CDbCommand->queryScalar()

nenor
Сообщения: 27
Зарегистрирован: 2013.08.27, 09:45

Re: Получение скалярного значения атрибута

Сообщение nenor » 2013.10.11, 13:03

Хм, в любом случае в $parent запихнет структуру AR пусть и со значениями NULL (судя по var_dump) и "займет" память, так что действительно, лучше через CDbCommand.

Закрыто