Maison  >  Questions et réponses  >  le corps du texte

Comment écrire un champ dans Laravel qui peut passer la vérification via une seule règle lorsqu'il existe plusieurs règles de vérification ?

Comment écrire un champ dans Laravel qui peut passer la vérification via une seule règle lorsqu'il existe plusieurs règles de vérification ?

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

Par exemple, cette règle de vérification
Tant que le compte de messagerie ou le compte de téléphone portable est réussi, la vérification peut être réussie

给我你的怀抱给我你的怀抱2734 Il y a quelques jours667

répondre à tous(2)je répondrai

  • 大家讲道理

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

    J'ai déjà rencontré ce genre de demande, et je n'ai vraiment pas trouvé de solution de support native dans la documentation. C'est ce que j'ai fait au final, vous pouvez vous y référer

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

    répondre
    0
  • 怪我咯

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

    Règles de validation personnalisées

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

    répondre
    0
  • Annulerrépondre