84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
laravel一个字段多个验证规则的时候通过一个规则即可通过验证要怎么写?
'alipay'=>array('sometimes','required','email','regex:/^1(3[0-9]|4[57]|5[0-35-9]|7[0135678]|8[0-9])d{8}$/'),
比如这个验证规则只要邮箱账号和手机账号任意一个只要通过了就可以验证通过
这个之前我也遇到过这种需求,确实没有在文档中找到原生的支持方案,最后是这样做的,可以参考一下
$rule = preg_match('/^\d+$/', $request->input($this->loginUsername())) ? 'tel' : 'email'; $this->validate($request, [ $this->loginUsername() => "required|{$rule}", 'password' => 'required', ]);
自定义验证规则
//AppServiceProvider class AppServiceProvider extends ServiceProvider { public function boot() { Validator::extend('alipay', function($attribute, $value, $parameters, $validator) { return preg_match('/^1(3[0-9]|4[57]|5[0-35-9]|7[0135678]|8[0-9])\d{8}$/',$value) || filter_var(FILTER_VALIDATE_EMAIL,$value); }); } public function register() { } } // Controller 使用 'alipay' => ['required','alipay']
这个之前我也遇到过这种需求,确实没有在文档中找到原生的支持方案,最后是这样做的,可以参考一下
自定义验证规则