Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Yii2外部字段中的REST选择字段_Rest_Yii2 - Fatal编程技术网

Yii2外部字段中的REST选择字段

Yii2外部字段中的REST选择字段,rest,yii2,Rest,Yii2,根据yii2明确指南: public function fields() { return ['id', 'email']; } public function extraFields() { return ['profile']; } 带有的请求可能会返回以下JSON数据: 在这个示例中,我如何调整外部字段(或者其他内容)以在响应的概要文件部分中只获得一个字段(例如,年龄) 首先想到的是 public function extraFields(){ return

根据yii2明确指南:

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

public function extraFields()
{
    return ['profile'];
}
带有的请求可能会返回以下JSON数据:


在这个示例中,我如何调整外部字段(或者其他内容)以在响应的概要文件部分中只获得一个字段(例如,年龄)

首先想到的是

public function extraFields(){

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

此功能将添加到Yii 2.0.14中

示例API请求的工作方式如下:
users?fields=id,email&expand=profile.age

编辑:现在,您可以使用以下内容:

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

带请求:
http://localhost/users?fields=id,email&expand=profileAge

但如果我只想更改此型号的配置文件,因为我还想在直接请求配置文件时查看所有字段。欢迎链接到解决方案,但是请确保你的答案在没有它的情况下是有用的:这样你的其他用户就会知道它是什么以及它为什么在那里,然后引用你链接到的页面中最相关的部分,以防目标页面不可用。
public function extraFields()
{
    return [
        'profileAge' => function($item){
            return $item->profile->age
        }
    ];
}