yii2将ActiveRecord属性作为JSON返回其他名称

时间:2016-01-24 06:06:31

标签: php json api activerecord yii2

当我选择ActiveRecord

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

并将此“someothername”作为公共属性添加到模型中,然后我可以访问它

$model->someothername

但是现在我需要在JSON中返回这个字段

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

我该怎么办?我应该在属性中添加“someothername”吗?

2 个答案:

答案 0 :(得分:2)

尝试覆盖活动记录中的fields()方法。

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

    return $fields;
}

Docs about fields method

答案 1 :(得分:0)

Just try Class yii \ helpers \ Json;

$data = Youremodel::model()->find();
JSON::encode($data);