exist 验证器中的 fiter => function($query) 该怎么写? [ 2.0 版本 ]
文档看了,还是不太懂,求助一下各位大佬。
修改 $query
后应该返回一个什么?
PenDon 补充于 2020-01-03 18:01
上面写错了。是 filter => function($query)
最佳答案
-
这个匿名函数 不需要返回值,直接操作
$query
就是了(因为这是 存在性检查,所以肯定有数据库查询)filter => ["field1" => "value1"]
如上代码 等效于
filter => function($query) { $query->andWhere(["field1" => "value1"]); }
所以,对于 and 的查询条件,是不需要用这个 匿名函数的,直接把 过滤条件数组 赋值给 filter 就可以了。当 你想要一个 or 查询的时候,就只能用这个 匿名函数了
filter => function($query) { $query->orWhere(["field1" => "value1"]); }
举一个 有点牵强的 示例场景:
注册的时候,需要填入一个 推荐人用户名,要求 这个推荐人用户名 必须存在,这时 是用不到 filter 属性的。假如用户表是做的 软删除,要求这个推荐人用户名 不能是 已删除的用户,这时 就需要用到 filter 属性了,不过,没必要用匿名函数,直接 给 filter 赋值 就可以了
filter => ["<>", "isDeleted", 1]
。在假如,除了填写 推荐人用户名 还可以填写 推荐人的邮箱(用同一个输入框),这时候就只能用 匿名函数了,考虑一下,这个 该怎么写呢
共 1 条回复我姓!,名!! 觉得很赞
其他 0 个回答
没有找到数据。
PenDon 长沙
注册时间:2019-08-21
最后登录:2021-11-19
在线时长:22小时42分
最后登录:2021-11-19
在线时长:22小时42分
- 粉丝0
- 金钱540
- 威望10
- 积分860