バリデーションについてまとめてみた。
バリデーションとは、ルールに対してあっているか、あっていないかを判断する。
postController
public function update(Request $request)
{
$request->validate([
'name' => 'require|string|max:20', //入力必須、文字列、20文字以内
'text' => 'require|max:300', //入力必須、300じ以内
'date' => 'require|date', //入力必須、日付
'email' => 'require|email', //入力必須、email型
]);
return view ('posts.index',['post'=>true]); //viewに返す
}
postControllerにpostにフォームで送られたデータをバリデーションする。
'フォーム名' => 'バリデーションルール',
バリデーションルールに通れば、ビューに返すことができ、できなければ、自動でリダイレクトする。
自動リダイレクトしないパターン
Validatorクラスのmakeメソッドを使う。(use Validator;)
postController
public function update(Request $request)
{
$validator = Validator::make($request->all(),[
'name' => 'require|string|max:20',
'text' => 'require|max:300',
'date' => 'require|date',
'email' => 'require|email',
]);
return view('post',['post'=> true]);
//バリデーションエラーだった場合の処理
if($validator->fails()) {
return redirect('posts.error',['post'=>fail]);
}
}
この場合でも自動リダイレクトさせたい場合は、 ->validate(); とする。
たくさんのバリデーションルールがあるので、いろいろ試して見ると良い。