Yii2 Gridview过滤无法正常工作

时间:2016-08-09 09:38:29

标签: php yii2

你能帮我解决在Yii2中为GridView实现过滤器的问题吗?现在,我的渲染表没有响应我的动作(搜索GET参数没有添加,如果我输入查询到过滤器输入,则没有任何变化)。这是我的代码: 控制器:

$searchModel = new UserSearch();
        $dataprovider = $searchModel->search(\Yii::$app->request->get());
        return $this->render('index', [
            'dataProvider' => $dataprovider,
            'searchModel' => $searchModel
        ]);

模型(UserSearch.php):

public $fullname;

    public function rules()
    {
        return [
            [['fullname'], 'safe'],
        ];
    }

    public function search($params) {
        $query = StUsers::find();
        $dataProvider = new ActiveDataProvider([
           'query' => $query,
        ]);

        if(!($this->load($params) && $this->validate())) {
            return $dataProvider;
        }

        $query->andFilterWhere(['LIKE', 'fullname', $this->fullname]);
        return $dataProvider;
    }

查看:

GridView::widget([
            'dataProvider' => $dataProvider,
            'filterModel' => $searchModel,
            'columns' => [
                'id',
                'fullname'
                ],
            ]);

2 个答案:

答案 0 :(得分:0)

在DataView中进行过滤时遇到同样的问题。也许问题出在客户端。 再次检查您的jquery是否在您的页面上调用了两次(浏览器/源代码)。 也可能是你的问题: jQuery(...).yiiGridView is not a function

答案 1 :(得分:0)

4 年过去了,应该不需要解决方案了。但是,问题出在下一个语句中:

    if(!($this->load($params) && $this->validate())) {
        return $dataProvider;
    }

改为:

    $this->load($params);

    if (!$this->validate()) {
        return $dataProvider;
    }