今回はLaravelを使って、入力フォームでのバリデーションチェックの方法を一緒に学んでいきましょう。バリデーションチェックは、ユーザーがフォームに入力したデータが適切かどうかを確認する重要なプロセスです。これをしっかり行うことで、誤ったデータの保存を防ぎ、アプリケーションの信頼性を高めることができます。
まずは入力フォームview(/register)の準備
まずは、ユーザーがデータを入力するフォームを作りましょう。ここでは例として、「名前」「住所」「年齢」「電話番号」という4つの入力項目を設けます。「名前」と「電話番号」は必須入力(「※」印の入力項目)にします。フォームはHTMLで記述し、LaravelのBladeテンプレート機能を使ってエラーメッセージも表示できるようにしておきましょう。
HTMLの基本的な構造は以下のようになります。@csrfはセキュリティ対策のために重要なので、忘れずに記述してください。
//入力エラーメッセージ
@include('common.errors')
<form enctype="multipart/form-data" action="{{ url('entry') }}" method="POST">
@csrf
<div>
<label for="namae">名前※</label>
<input type="text" name="namae">
</div>
<div>
<label for="nenrei">年齢</label>
<input type="text" name="nenrei">
</div>
<div>
<label for="add">住所</label>
<input type="text" name="add">
</div>
<div>
<label for="tel">電話番号※</label>
<input type="text" name="tel">
</div>
<div>
<button type="submit">登録</button>
</div>
</form>
バリデーションチェックの実装:Controllerの記述
次に、ユーザーがフォームに入力したデータのチェックを行います。Laravelでは、Validatorファサードを使って簡単にバリデーションを実装できます。以下のルールを設定しましょう。
- 名前(namae):必須入力、最大255文字以内
- 年齢(nenrei):最大3文字(桁)以内
- 住所(add):最大255文字以内
- 電話番号(tel):必須入力、最大20文字以内
これらのルールをValidator::makeメソッドに設定します。もしバリデーションエラーが発生した場合は、フォームにリダイレクトし、エラーメッセージを表示させます。
public function entry(Request $request) {
//バリデーションチェック
$validator = Validator::make($request->all(), [
'namae' => 'required|max:255', //必須入力、最大255文字以内
'nenrei' => 'max:3', //最大3文字(桁)以内
'add' => 'max:255', //最大255文字以内
'tel' => 'required|max:20', //必須入力、最大20文字以内
]);
//バリデーションエラーの場合
if ($validator->fails()) {
return redirect('/register') //register(入力フォーム)にリダイレクト
->withInput()
->withErrors($validator);
}
//以降登録処理を記述…
}
ルーティングの設定:Route(ページURL)の記述
Laravelでは、URLとコントローラのアクションを結びつけるためにルーティングを設定します。ここでは、/registerというURLで上記のフォームを表示するように設定します。
Route::get('/register','EntryController@register');
まとめ
以上で、Laravelを使用した基本的な入力フォームのバリデーションチェックの流れを把握できました。これらのステップを踏むことで、安全かつ効率的なウェブアプリケーションの開発が可能になります。最初は難しく感じるかもしれませんが、ぜひ挑戦してみてください!
※流用される場合は自己責任でお願いします。