Heim  >  Fragen und Antworten  >  Hauptteil

Wie schreibe ich ein Feld in Laravel, das die Überprüfung durch eine Regel durchführen kann, wenn mehrere Überprüfungsregeln vorhanden sind?

Wie schreibe ich ein Feld in Laravel, das die Überprüfung durch eine Regel bestehen kann, wenn mehrere Überprüfungsregeln vorhanden sind?

'alipay'=>array('sometimes','required','email','regex:/^1(3[0-9]|4[57]|5[0-35-9]|7 [0135678]|8[0-9])d{8}$/'),

Zum Beispiel diese Verifizierungsregel
Solange entweder das E-Mail-Konto oder das Mobiltelefonkonto bestanden wird, kann die Verifizierung bestanden werden

给我你的怀抱给我你的怀抱2734 Tage vor668

Antworte allen(2)Ich werde antworten

  • 大家讲道理

    大家讲道理2017-05-16 16:50:29

    这个之前我也遇到过这种需求,确实没有在文档中找到原生的支持方案,最后是这样做的,可以参考一下

    $rule = preg_match('/^\d+$/', $request->input($this->loginUsername())) ? 'tel' : 'email';
    $this->validate($request, [
        $this->loginUsername() => "required|{$rule}",
        'password'             => 'required',
    ]);

    Antwort
    0
  • 怪我咯

    怪我咯2017-05-16 16:50:29

    自定义验证规则

    //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']
    

    Antwort
    0
  • StornierenAntwort