我对Yii2 framework
完全陌生。我试图学习过滤,但不知怎的,我不理解它。我查看了文档,但它也没有帮助。有人可以向我解释一下这个功能是一步一步的吗?
public function filteringValues($query)
{
$query->andFilterWhere([
'>',
'table1.column1',
date('Y-m-d H:i:s'),
]);
}
}
答案 0 :(得分:5)
就像doc指出的那样,如果操作数不为空,则public function response(array $errors)
{
//Format your error message
if ($this->expectsJson()) {
return new JsonResponse($errors, 422);
}
return $this->redirector->to($this->getRedirectUrl())
->withInput($this->except($this->dontFlash))
->withErrors($errors, $this->errorBag);
}
会应用条件
在您的特定情况下(因为andFilterWhere
始终返回值),
date('Y-m-d H:i:s')
将等同于
$query->andFilterWhere(['>', 'table1.column1', date('Y-m-d H:i:s')]);
将sql翻译成类似
的条件$query->andWhere(['>', 'table1.column1', date('Y-m-d H:i:s')]);
AND (`table1`.`column1`) > '2017-08-12 06:10:32'
的propper用例是在与可选值(作为过滤器参数接收)进行比较时。
andFilterWhere
它的目的是不检查天气$query->andFilterWhere(['>', 'table1.column1', $date]);
是否为空
$date
在此示例中,查询仅对非empty的参数应用条件,忽略额外的参数