#バリデーション
コントローラーにvalidate_ruleとvalidateメソッド呼び出しを加えるだけで、送信データの検証ができます。(前回のコードを手直しします)
app/Http/Controllers/PageController.php
・・(一部抜粋)・・
public function post(Request $request) {
$validate_rule = ['title' => 'required'];
$this->validate($request, $validate_rule);
return view('page.post',['title' => $request->title, 'body' => $request->body]);
}
titleというフォームのデータは必須項目(required)とするバリデーションです。
index.blade.phpには次のようにバリデーション結果のメッセージを出すように書き加えます。
index.blade.php
・・(一部抜粋)・・
<ul>
@foreach ($errors->all() as $error)
<li>{{$error}}</li>
@endforeach
</ul>
これでtitleが空の送信で、バリデーションが働き、エラーメッセージが出ると思います。
ただこれだと、エラー時に入力値がクリアされますので、フォームのvalueに古い値を復元できる仕掛けをしておきます。
index.blade.php
・・(一部抜粋)・・
TITLE: <input type="text" name="title" value="{{old('title')}}">
BODY: <input type="text" name="body" value="{{old('body')}}">