この形式を使用してカスタムエラーメッセージを返す方法は?
$this->validate($request, [
'thing' => 'required'
]);
カスタムエラーメッセージを取得するには、3番目のパラメーターにカスタムエラーメッセージを渡す必要があります。
$this->validate(
$request,
['thing' => 'required'],
['thing.required' => 'this is my custom error message for required']
);
複数のフィールド、ロール、およびフィールドロール固有のメッセージの場合
$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言語ファイルのカスタム配列にメッセージを追加します。」
最初に、エラーメッセージを表示するビューページに次の行を追加する必要があります。
<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公式ドキュメント 検証 に従うこともできます。