web-dev-qa-db-ja.com

Laravel 5.3 $ this-> validate()を使用してカスタムエラーメッセージを返す

この形式を使用してカスタムエラーメッセージを返す方法は?

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

カスタムエラーメッセージを取得するには、3番目のパラメーターにカスタムエラーメッセージを渡す必要があります。

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

複数のフィールド、ロール、およびフィールドロール固有のメッセージの場合

$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);

「ほとんどの場合、おそらく、Validatorに直接渡すのではなく、言語ファイルでカスタムメッセージを指定します。そうするには、resources/lang/xx/validation.php言語ファイルのカスタム配列にメッセージを追加します。」

1
user634545

最初に、エラーメッセージを表示するビューページに次の行を追加する必要があります。

<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>

エラーメッセージがそのページに表示されるデモコントローラーを次に示します。

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');
 }

詳細については、 ブログ投稿 に従ってください。それに加えて、laravel公式ドキュメント 検証 に従うこともできます。

1
Hola