こんにちは、さるまりんです。
Laravelでフォームのバリデーションを行うとき、フレームワークの仕組みを使ってこんなことをします。
public function processData(Request $request)
{
$validated = $request->validate([
'name' => 'required|string|max:255',
'email' => 'required|email',
'password' => 'required|string|min:8',
]);
// バリデーションしてOKだった時の処理が続きます
// 画面表示へ
return redirect()->route('index')->with('success', '成功です');
}
$request
のvalidate
メソッドに[]
でバリデーションのルールを渡しています。
プログラム内でもで作ったデータをバリデーションすることがあると思います。
連想配列としてできたデータに対して、それが問題ないかをチェックするには次のように処理をします。
// バリデーションをかけたいデータ
$data = [
'name' => 'salumarine',
'email' => 'salu@salumarine.com',
'password' => 'password123'
];
// バリデーションのルール
$rules = [
'name' => 'required|string|max:255',
'email' => 'required|email',
'password' => 'required|string|min:8',
];
$messages = [
// エラー時のメッセージはここ
'name.required' => '名前は必須です。',
];
// validatorを取得し
$validator = Validator::make($data, $rules, $messages);
// ここで使う
if ($validator->fails()) {
// バリデーションエラーが発生した場合
return redirect('back')->withErrors($validator)->withInput();
} else {
// バリデーションが成功した場合
// データを保存するなど
}
知っていると当たり前のことなんですが、これパッと思いつかなかったのでここに実例で残しておきます。
便利な機能は適材適所使って、効率よく安全なプログラムを書いていきたいです。
読んでくださってありがとうございました。
それではまた!