Yii2 REST在extrafields中选择字段

时间:2016-06-15 09:50:18

标签: rest yii2

从yii2明确指南:

public function fields()
{
    return ['id', 'email'];
}

public function extraFields()
{
    return ['profile'];
}
  

http://localhost/users?fields=id,email&expand=profile的请求可能会返回以下JSON数据:

[
    {
        "id": 100,
        "email": "100@example.com",
        "profile": {
            "id": 100,
            "age": 30,
        }
    },
    ...
]

如何调整extraFields(或者其他东西)以在此示例中的响应的配置文件部分中仅获取一个字段(例如,年龄)?

2 个答案:

答案 0 :(得分:0)

首先想到的是

public function extraFields(){

    return [
        'profile' => function($item){
            return [
                'age' => $item->profile->age
            ];
        }
    ];
}

答案 1 :(得分:0)

此功能将在Yii 2.0.14中添加 https://github.com/yiisoft/yii2/pull/14219

示例API请求的工作方式如下:URL/API/v2/...

修改:现在您可以使用以下内容:

users?fields=id,email&expand=profile.age

请求:public function extraFields() { return [ 'profileAge' => function($item){ return $item->profile->age } ]; }