覆盖Yii2和Where()条件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了覆盖Yii2和Where()条件相关的知识,希望对你有一定的参考价值。

通过我的yii2应用程序,我想转向如下查询:

Post::find()->andWhere(['id'=>$id])->one();

Post::find()->andWhere(['id'=>'uuid_to_bin('.$id.')'])->one();

因为这段代码无处不在,所以我不想经历并手动更改每一个查询。所以我认为更容易就是覆盖yii2的基类之一,类似于这种方法:http://www.yiiframework.com/doc-2.0/guide-helper-overview.html#customizing-helper-classes并检查我们是否将id作为列条件,我们只是对条件进行一些转换。

我应该覆盖哪个类,以便每当调用andWhere()orWhere()以及where()等时,我都可以轻松更新和转换查询条件?

答案

如果检查由gii和Generate ActiveQuery生成的模型。

您可以在生成的查询类中找到此代码

/*public function active()
{
    return $this->andWhere('[[status]]=1');
}*/

像这样调用函数

Post::find()->active()->one()

祝好运

以上是关于覆盖Yii2和Where()条件的主要内容,如果未能解决你的问题,请参考以下文章

Yii2 where()变量条件

yii2数据条件查询-where专题

yii2:多条件多where条件下碰到between时,between语句如何处理呢?

php Yii2 model :: find()具有默认的WHERE条件

Yii2 mongodb 扩展的where的条件增加大于 小于号

Yii2 mongodb 扩展的where的条件加入大于小于号浅析(转)