今日の勉強
バリデーションでエラー文を表示させる。
入力項目が複数ある時に
エラーがあった項目にそれぞれ
エラー文を表示させる
ちなみに
PHPフレームワーク Laravel入門
をもとに学習を進めていく。
index.blade.php
@if (count($errors) > 0)
<p>エラー!</p>
@endif
この count が一体何者なのかわからなかったので調べた。
count()の変数の中に要素が何個入っているかカウントしれくれる。
つまり$errorsのなかに1つでも値が入っていたら( > 0)
「エラー!」を表示してね。という処理。
バリデーションでエラーが確認されたら
$errors(という箱?)に保管されるので
一つでもエラーが確認されたら
エラー文が表示される。
index.blade.php
<form action="/hello" method="post">
<table>
@csrf
@if ($errors->has('name'))
<tr><th>エラー</th><td>{{$errors->first('name')}}</td></tr>
@endif
<tr><th>名前: </th><td><input type="text" name="name" value="{{old('name')}}"</td></tr>
.
.
.
.
has()はエラーメッセージを持っているかチェックしてくれる。
以下参考ページ
入門者のためのLaravelのバリデーションとエラーメッセージ
エラーが発生した場合は
$errors->first()のという値を出力
firstは()の中の最初のエラーメッセージを取得する。