什么是andFilterWhere()条件操作数的目的?

时间:2017-07-12 07:43:12

标签: yii2

我对Yii2 framework完全陌生。我试图学习过滤,但不知怎的,我不理解它。我查看了文档,但它也没有帮助。有人可以向我解释一下这个功能是一步一步的吗?

public function filteringValues($query)
{   
        $query->andFilterWhere([
            '>',
            'table1.column1',
            date('Y-m-d H:i:s'),
        ]);
    }
}

1 个答案:

答案 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的参数应用条件,忽略额外的参数