大飞_dafei

导航

Yii2 search 搜索[数据小部件--GridView--数据过滤]

Yii2 搜索条件,使用gii创建搜索模型

<?php

namespace app\models;

use Yii;
use yii\base\Model;
use yii\data\ActiveDataProvider;

class PostSearch extends Post
{
    public function rules()
    {
        // 只有在 rules() 函数中声明的字段才可以搜索
        return [
            [['id'], 'integer'],
            [['title', 'creation_date'], 'safe'],
        ];
    }

    public function scenarios()
    {
        // 旁路在父类中实现的 scenarios() 函数
        return Model::scenarios();
    }

    public function search($params)
    {
        $query = Post::find();

        $dataProvider = new ActiveDataProvider([
            'query' => $query,
        ]);

        // 从参数的数据中加载过滤条件,并验证
        //  var_dump($this->validate());  
        //  var_dump($this->getErrors()); 查看搜索条是否合法,获取错误信息
        if (!($this->load($params) && $this->validate())) {
            return $dataProvider;
        }

        // 增加过滤条件来调整查询对象
        $query->andFilterWhere(['id' => $this->id]);
        $query->andFilterWhere(['like', 'title', $this->title])
              ->andFilterWhere(['like', 'creation_date', $this->creation_date]);

        return $dataProvider;
    }
}

 

官方: yii2 search 数据过滤

posted on 2018-11-05 16:54  大飞_dafei  阅读(230)  评论(0编辑  收藏  举报