Laravelのバリデーションを試してみる

LaravelでCRUDを実装してみる https://yk5656.hatenablog.com/entry/20210105/1609772400

の続き

コントローラーにvalidateの処理を追加。

$ vi app/Http/Controllers/BookController.php
・・・
    public function store(Request $request)
    {
        $request->validate([
            'name' => 'required|max:100',
            'price' => 'required|integer',
        ]);

        Book::create($request->all());
        return redirect()->route('book.index')->with('success', '追加しました');
    }
・・・

createのビューにエラーメッセージのhtmlを追加。

・・・
@if ($errors->any())
  <div class="alert alert-danger">
    <ul>
      @foreach ($errors->all() as $error)
        <li>{{ $error }}</li>
      @endforeach
    </ul>
  </div>
@endif
・・・

何も入力せず登録しようとした場合は、requiredのエラーが表示され、
f:id:yk5656:20210207153442j:plain

多すぎる文字数を入力したり、数値以外を入力した場合は、下記のようなエラーが表示される。
f:id:yk5656:20210207153451j:plain