您现在的位置是:首页>>文章详情文章详情

Yii2.0 框架中andwhere和andFilterWhere的区别

[PHP]2018-07-03 10:47:15

首先,在yii里面 andWhere() 和 andFilterWhere() 都是用于在sql上添加附加条件,进行查询。可以多次调用来追加不同的条件,例如:

H3V{U$[B09UGVQFZZB5`BHH.png


两者唯一区别就是,当要字段查询条件的值为空时,andwhere将在表中查询该字段为空的数据,andfilterwhere如果查询条件的值为空,将忽略掉该查询条件,在一些特定的场景下非常有用,举个栗子,后台管理页面的字段搜索:G(KUZS6(C18~I((1@6JV)A9.png





此时例如想要搜索商品名为‘王者荣耀’的所有数据,输入框输入‘王者荣耀’,其他字段输入为空,

在该model的search类使用andwhere来搜索将搜索不出数据(除非你的数据表有其他字段都为空的数据),

即该搜索条件为,商品名like‘王者荣耀’,其他所有的字段like‘空’;

若使用andfilterwhere将只会搜索商品名like‘王者荣耀’,其他空值的搜索将不会执行。

像类似的情况都可以用andfilterwhere,直接调用yii\db\Query::filterWhere() 方法即可实现。

提示: 当一个值为 null、空数组、空字符串或者一个只包含空白字符时,那么它将被判定为空值。

  

0 点赞!

  评论

评论列表:

登录 留言 回顶部