Я сделал REST-контроллер с каркасом Yii2. Когда я пытаюсь извлечь запись из моей базы данных по модели ActiveRecord
, JsonFormatter
дает мне только реальные атрибуты. Как можно настроить JsonFormatter
, чтобы дать мне также публичную переменную?
Это мой код:
Контроллер
class MyController extends yii\rest\ActiveController
{
...
public function actionView($id)
{
$struct = \common\models\Struct::find()->where(['id' => '285'])->One();
if ($struct) {
return $struct;
}
return false;
}
}
Модель
/**
* property string $id;
* property string $name;
*/
class Struct extends \yii\db\ActiveRecord
{
public $test;
...
public function afterFind()
{
parent::afterFind();
$this->test = 'ok';
}
}
результат запроса
{"id":1,"name": "ciccio"}
но если я напечатаю переменную с print_r()
, у меня будет весь объект
\app\models\Struct object
(
[test] => ok
[_attributes:yii\db\BaseActiveRecord:private] => Array
(
[id] => 1
[name] => ciccio
)
)
Как получить свойство переменной test
без добавления пустого поля в таблицу базы данных?