web-dev-qa-db-fra.com

Laravel 5.3 renvoie un message d'erreur personnalisé en utilisant $ this-> validate ()

Comment retourner un message d'erreur personnalisé en utilisant ce format?

$this->validate($request, [
  'thing' => 'required'
]);
10
cmac

pour obtenir un message d'erreur personnalisé, vous devez passer un message d'erreur personnalisé au troisième paramètre, comme celui 

$this->validate(
    $request, 
    ['thing' => 'required'],
    ['thing.required' => 'this is my custom error message for required']
);
34
Imtiaz Pabel

Pour plusieurs messages concernant des champs, des rôles et des rôles spécifiques à un champ

$this->validate(
        $request, 
        [   
            'uEmail'             => 'required|unique:members',
            'uPassword'          => 'required|min:8'
        ],
        [   
            'uEmail.required'    => 'Please Provide Your Email Address For Better Communication, Thank You.',
            'uEmail.unique'      => 'Sorry, This Email Address Is Already Used By Another User. Please Try With Different One, Thank You.',
            'uPassword.required' => 'Password Is Required For Your Information Safety, Thank You.',
            'uPassword.min'      => 'Password Length Should Be More Than 8 Character Or Digit Or Mix, Thank You.',
        ]
    );

https://laravel.com/docs/5.3/validation#working-with-error-messages

$messages = [
    'required' => 'The :attribute field is required.',
];

$validator = Validator::make($input, $rules, $messages);

"Dans la plupart des cas, vous spécifierez probablement vos messages personnalisés dans un fichier de langue au lieu de les transmettre directement au validateur. Pour ce faire, ajoutez vos messages au tableau personnalisé du fichier de langue resources/lang/xx/validation.php."

0
user634545

Vous devez d'abord ajouter les lignes suivantes dans la page d'affichage où vous souhaitez afficher le message d'erreur:

<div class="row">
        <div class="col-md-4 col-md-offset-4 error">
            <ul>
                @foreach($errors->all() as $error)
                    <li>{{$error}}</li>
                @endforeach
            </ul>
        </div>
    </div>

Voici un contrôleur de démonstration par lequel un message d'erreur apparaîtra sur cette page:

public function saveUser(Request $request)

 {
     $this->validate($request,[
        'name' => 'required',          
        'email' => 'required|unique:users',          
        ]);
  $user=new User();
  $user->name= $request->Input(['name']);
  $user->email=$request->Input(['email']);
  $user->save();
  return redirect('getUser');
 }

Pour plus de détails, vous pouvez suivre le Blog post . En outre, vous pouvez également suivre la documentation officielle de Laravel Validation

0
Hola