在我的默认休息设置中使用Yii2中的get方法运行此网址“api / web / v1 / users”时,它为我提供了所有用户的列表。
我在用户表中有一列 is_active ,因此我只想要所有有效用户的列表,其中is_active = 1“ ,我的问题是我如何通过我的自定义条件来获取休息数据?
答案 0 :(得分:1)
此问题包含Yii2中常规REST查询/搜索实现所需的所有代码: Yii2 REST query
您的搜索可以拨打api / web / v1 / users / search?is_active = 1
答案 1 :(得分:1)
将此添加到您的REST控制器
public function actions()
{
// Overriding action
$actions['index']['prepareDataProvider'] = function($action)
{
return new \yii\data\ActiveDataProvider([
'query' => \app\models\User::find()->where(['is_active' => 1]),
]);
};
return $actions;
}
答案 2 :(得分:0)
您可以通过覆盖users
操作或在REST
控制器中创建新操作来实现此目的:
public function actionActiveUsers(){
return User::find()->where(['active' => 1])->all();
}
现在,您可以通过user/activeUsers
网址获得有效用户。
答案 3 :(得分:0)
我使用ActiveDataProvider为REST API完成了相同的任务。
注释/禁用UserController的行 public $ modelClass ='app \ model \ user';
创建新动作,即actionIndex() // ---控制器动作
public function actionIndex(){
$query = (new yii\db\Query())
->from('user')
->where('ia_active=:rec',[
':rec'=>1
]);
$dataProvider = new yii\data\ActiveDataProvider([
'query' => $query,
]);
return $dataProvider;
}
注意: 在web.php中添加url-rule(urlManager) // --- web.php
'urlManager' => [
enablePrettyUrl' => true,
'rules' = [
//--- other rules
'GET,HEAD users' => 'v1/users/index',
]
]
试一试。