Laravel 8 隐式扩展

2021-07-17 16:41 更新

默认情况下,当要验证的属性不存在或者包含一个空字符串时,包含自定义扩展的校验规则是不会执行的。例如, unique 规则不会校验空字符串:

$rules = ['name' => 'unique:users,name'];

$input = ['name' => ''];

Validator::make($input, $rules)->passes(); // true

如果想要实现即使属性为空,规则也要校验,那么就需要暗示该属性是必须的。要创建这样的 「隐式」扩展,请使用 Validator::extendImplicit() 方法:

Validator::extendImplicit('foo', function ($attribute, $value, $parameters, $validator) {
    return $value == 'foo';
});

注意:「隐式」扩展仅仅暗示该属性是必须的。至于它到底是确实还是空值,这取决于你。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号