Laravelのバリデーションの基本【個人的なお勉強アウトプット】
参考図書
バリデーションルールの設定
ValidateRequestsというコントローラクラスにあるメソッドを利用する。
app/Http/Controllers/HelloController.php
public function post(Request $request){
$validate_rule = [
'name' => 'required',
'mail' => 'email',
'age' => 'numeric|between:0,150',
];
$this->validate($request, $validate_rule);
}
validateアクションメソッドは配列の形で、項目名、検証ルールをセットする。
検証ルールが複数ある場合は|
でつなぐ。
ルートの設定
routes/web.php
Route::post('hello', 'App\Http\Controllers\HelloController@post');
ビューでエラーメッセージの表示
resources/views/hello/index.blade.php
@section('content')
<p>{{$msg}}</p>
@if(count($errors) > 0)
<p>入力に問題があります。再入力してください。</p>
@endif
<form action="/hello" method="post">
<table>
@csrf
//hasはエラーが発生しているかをチェックするメソッド
@if($errors->has('name'))
//firstというメソッドは指定した項目の最初のエラーメッセージを取得するもの
<tr><th>ERROR</th><td>{{$errors->first('name')}}</td></tr>
@endif
//oldメソッドで引数に指定した入力項目の前回送信した値を返す
<tr><th>name: </th><td><input type="text" name="name" value="{{old('name')}}"></td></tr>
@if($errors->has('mail'))
<tr><th>ERROR</th><td>{{$errors->first('mail')}}</td></tr>
@endif
<tr><th>mail: </th><td><input type="text" name="mail" value="{{old('mail')}}"></td></tr>
@if($errors->has('age'))
<tr><th>ERROR</th><td>{{$errors->first('age')}}</td></tr>
@endif
<tr><th>age: </th><td><input type="text" name="age" value="{{old('age')}}"></td></tr>
<tr><th></th><td><input type="submit" value="send"></td></tr>
</table>
</form>
@endsection
$errorsはバリデーションで発生したエラーメッセージをまとめて管理するオブジェクト。バリデーション機能によって勝手に組み込まれる。
エラーメッセージを取得するメソッド
メソッド | 内容 |
---|---|
all | すべてのエラーメッセージを配列で取得 |
first | 指定した項目の最初のエラーメッセージを文字列で取得 |
get | 指定した項目の最初のエラーメッセージすべてを配列で取得 |
getの使い方はfirstと同じで$変数 = $errors->get('項目名');
Author And Source
この問題について(Laravelのバリデーションの基本【個人的なお勉強アウトプット】), 我々は、より多くの情報をここで見つけました https://qiita.com/vanshi/items/9f4c2d27e2eabdb4438c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .