在Yii2中获取具有某些条件的休息数据

时间:2014-11-12 08:58:05

标签: rest yii2

在我的默认休息设置中使用Yii2中的get方法运行此网址“api / web / v1 / users”时,它为我提供了所有用户的列表。

我在用户表中有一列 is_active ,因此我只想要所有有效用户的列表,其中is_active = 1“ ,我的问题是我如何通过我的自定义条件来获取休息数据?

4 个答案:

答案 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',
  ]
]

试一试。

相关问题