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']
這個之前我也遇到過這種需求,確實沒有在文件中找到原生的支援方案,最後是這樣做的,可以參考一下
自訂驗證規則