angularjs – 如何在Yii2中进行静止调用以返回某些字段时设置方案

前端之家收集整理的这篇文章主要介绍了angularjs – 如何在Yii2中进行静止调用以返回某些字段时设置方案前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前正在使用AngularJs制作Yii2 RESTful系统.

在我的数据库中,我有几个列,我希望能够从我系统中的某个点进行特定调用时返回.

我遇到的问题是如何从系统另一部分的restful调用中返回少量字段,例如(id,title和stub),以便忽略表中的其他字段.

理想情况下,我喜欢它以类似于模型规则如何与yii中的场景一起工作的方式工作.

解决方法

我认为有两种方法

1.使用params

// returns all fields as declared in fields()
http://localhost/users
// only returns field id and email,provided they are declared in fields()
http://localhost/users?fields=id,email
// returns all fields in fields() and field profile if it is in extraFields()
http://localhost/users?expand=profile
// only returns field id,email and profile,provided they are in fields() and extraFields()
http://localhost/users?fields=id,email&expand=profile

2.覆盖模型的字段()

// explicitly list every field,best used when you want to make sure the changes
// in your DB table or model attributes do not cause your field changes (to keep API backward compatibility).
public function fields()
{
    return [
        // field name is the same as the attribute name
        'id',// field name is "email",the corresponding attribute name is "email_address"
        'email' => 'email_address',// field name is "name",its value is defined by a PHP callback
        'name' => function () {
            return $this->first_name . ' ' . $this->last_name;
        },];
}
// filter out some fields,best used when you want to inherit the parent implementation
// and blacklist some sensitive fields.
public function fields()
{
    $fields = parent::fields();
    // remove fields that contain sensitive information
    unset($fields['auth_key'],$fields['password_hash'],$fields['password_reset_token']);
    return $fields;
}

更多细节,请参阅https://github.com/yiisoft/yii2/blob/master/docs/guide/rest-resources.md

猜你在找的Angularjs相关文章