Yii2 搜索条件,使用gii创建搜索模型
<?php
namespace appmodels;
use Yii;
use yiiaseModel;
use yiidataActiveDataProvider;
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 数据过滤