Yii2 的 rest 接口使用疑惑 [ 2.0 版本 ]
当 GET 请求列表接口的时候,比如 http://localhost/users
如果后面不加filter参数,我要查询符合一个标志位的用户列表呢,因为想过滤被封禁的用户不显示出来,只能用 http://localhost/users?filter[status]=1
这种方式吗?感觉很不合理,因为用户去除掉filter之后就能看到我所有的用户,这是我不愿意看到的,怎么才能直接过滤呢,求指导!
共 3 个回答
-
你直接在where条件里把已经禁用的列表不展示就可以了吧。
或者拆解为两个接口,一个需要权限一个不需要权限,不需要权限的只供非私密数据。
需要权限的就不需要登录,且登陆者的权限也要达到要求。
共 2 条回复我使用的是自带的代码 yii\rest\IndexAction,没有自己手写方法,如果手写方法肯定可以解决,现在就是想知道使用 https://www.yiichina.com/doc/guide/2.0/rest-quick-start权威指南中 GET /users: 逐页列出所有用户,怎么在不加url参数的情况下,服务端进行过滤
Lucifer_wn 回复于 2020-06-04 13:16 回复通过权限控制咯,获取当前用户token来获取用户信息,取用户信息中的角色权限获取对应权限数据
-
// models/UserQuery.php class UserQuery extends \yii\db\ActiveQuery { public function init() { parent::init(); $this->andWhere(['status' => 1]); } } // models/User.php class User extends \yii\db\ActiveRecord { public static function find() { return new UserQuery(static::class); } }
python 觉得很赞
bryce
注册时间:2014-01-13
最后登录:2024-09-14
在线时长:20小时48分
最后登录:2024-09-14
在线时长:20小时48分
- 粉丝8
- 金钱175
- 威望0
- 积分375