2016-01-24 2 views
2

Когда я выбираю ActiveRecordyii2 вернуть атрибут ActiveRecord в формате JSON с другим именем

$models = Model::find() 
     ->select(['someothername' => 'name'])->all(); 

и добавить «someothername» в качестве государственной собственности к модели, я могу обращаться к нему

$model->someothername 

Но теперь Мне нужно вернуть это поле в JSON

\Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; 
return $models; 

Как это сделать? Должен ли я добавлять «someothername» к атрибутам?

ответ

1

Попробуйте переопределить метод fields() в вашей активной записи.

public function fields() 
{ 
    $fields = parent::fields(); 
    $fields['someothername'] = $this->someothername; 

    return $fields; 
} 

Docs about fields method

0

Just try YII класс \ хелперов \ Json;

$data = Youremodel::model()->find(); 
JSON::encode($data); 
Смежные вопросы