Api 在yii2中使用函数field()的正确方法

Api 在yii2中使用函数field()的正确方法,api,rest,yii2,Api,Rest,Yii2,我正在为我的项目编写RESTAPI field()函数在我的模型中: public function fields() { $fields = parent::fields(); // remove fields that contain sensitive information unset($fields['media'], $fields['content']); return $fields; } 我有两个动作: /api/resources-获取所

我正在为我的项目编写RESTAPI

field()函数在我的模型中:

public function fields()
{
    $fields = parent::fields();

    // remove fields that contain sensitive information
    unset($fields['media'], $fields['content']);

    return $fields;
}
我有两个动作:

/api/resources
-获取所有资源列表

此api返回:

"items":
[
    {
        "ID": 1,
        "category_id": 1,
        "title": "tset",
        "image": "1437537044.png",
        "ins_date": "2015-07-22 00:00:00",
        "count": 20
    },
    {
        "ID": 2,
        "category_id": 1,
        "title": "tset",
        "image": "1437537176.png",
        "ins_date": "2015-07-22 00:00:00",
        "count": 0
    },
/api/resources/view?id=1
-获取关于资源id=1的所有信息

{
    "ID": 1,
    "category_id": 1,
    "title": "tset",
    "image": "1437537044.png",
    "ins_date": "2015-07-22 00:00:00",
    "count": 21
}
我得到了所有资源,但我想在调用
actionView($id)
时得到所有字段,如下所示:

{
    "ID": 1,
    "category_id": 1,
    "title": "tset",              // I want to get response with this 
    "content": "test",            //and this fields
    "media": "test",
    "image": "1437537044.png",
    "ins_date": "2015-07-22 00:00:00",
    "count": 22
}
如何解决这个问题?帮帮我

  • 使用具有不同字段的模型子类()

  • public function fields()
    {
        if(Yii::$app->controller->action->uniqueId == 'controller/action'){
            return ['field_1','field_2','field_3','field_4'];
        }else{
            return ['field_1','field_3'];
        }
    }