public function search($params)
{
$query = $this->finder->getUserQuery();
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
if (!($this->load($params) && $this->validate())) {
return $dataProvider;
}
if ($this->created_at !== null) {
$date = strtotime($this->created_at);
$query->andFilterWhere(['between', 'created_at', $date, $date + 3600 * 24]);
}
$query->andFilterWhere(['like', 'username', $this->username])
->andFilterWhere(['like', 'email', $this->email])
->andFilterWhere(['registration_ip' => $this->registration_ip]);
return $dataProvider;
}
所以…问题
是啥?
楼主的网名好熟悉~是学Drupal的吧
这是yii2的过滤套路,重点是query。
假设Gridview中填入过滤条件后,url是这样:
那么控制器会将Yii::$app->request->queryParams
作为参数调用search($params),打印出的$params是这样的:search
函数中load($params)
后,$this
打印出来可以看到$this->code
,$this->name
等的值:
至于你的例子中$this->created_at
的处理,则表示如果指定了’创建时间’,那么就增加过滤条件:那个时刻起24小时内创建的记录。