#環境
- CentOS 7
- PHP 7
- Laravel 5.3
#バリデーション処理の実装
Controller.php
\Validator::make(
['email' => $request['email']],
['email' => 'required|email|max:128']
)->validate();
blade.php
<div class="form-group @if(!empty($errors->first('email'))) has-error @endif">
<label for="email" class="col-md-2 control-label">メールアドレス</label>
<div class="col-md-6">
<input type="email" class="form-control" id="email" name="email" placeholder="example@email.com" value="{{ old('email') }}" required="required">
<span class="help-block">{{$errors->first('email')}}</span>
</div>
</div>
↑だけでバリデーションが行われ、エラーがあった際は、
のように前の画面に自動で遷移して、エラー出力ができる。
#エラーメッセージの場所
resources/lang/en/validation.php
で定義されている。
resources/lang/en/validation.php
<?php
return [
...
'email' => 'The :attribute must be a valid email address.',
'exists' => 'The selected :attribute is invalid.',
'file' => 'The :attribute must be a file.',
...
#エラーメッセージを日本語にする
今のままだとエラーメッセージが英語なので、日本語に直す。
-
config/app.php
の'locale' = >'en'
を'locale' => 'ja'
に変更 - 日本語版のエラーメッセージファイルを GitHubからDL する
-
resources/lang/ja/
に格納(ディレクトリは作る)
#エラーメッセージの内容を変更する
emailは必須です。
だとユーザーに優しくないので変更する。
先ほど追加したvalidation.php
の'attributes'
の欄を以下のように変更する。
resources/lang/ja/validation.php
'attributes' => [
'email' => 'メールアドレス',
],