Laravelのミドルウェアで入力項目のデフォルト値を設定する

はじめに

入力項目のデフォルト値を設定するミドルウェアを作ってみました。
実装の一例としてご紹介します。

環境

  • PHP v8.0.6
  • Laravel v8.45.1

サンプル

ミドルウェアを作成する

プロジェクト直下で以下のコマンドを実行して、ミドルウェアのひな形を作成します。
今回はInputDefaultValueという名前で作成します。

プロジェクト直下/app/Http/Middlewareフォルダに移動します。
フォルダ移動後、作成したInputDefaultValue.phpを以下の通りに修正します。

作成したミドルウェアを有効にする

作成したミドルウェアを有効にするため、設定を追加します。
プロジェクト直下/app/Http/Kernel.phpを開き、$middlewareGroupsのキーがwebの配列に
「\App\Http\Middleware\InputDefaultValue::class」を追加します。

コントローラーを作成する

画面表示とデータ送信をハンドリングするコントローラーを作成します。

まず画面表示用のコントローラーを作成するため、プロジェクト直下で以下のコマンドを実行します。
今回はIndexControllerという名前にします。

プロジェクト直下/app/Http/Controllersに移動します。
フォルダ移動後、作成したコントローラーを以下の通りに修正します。

次にデータ送信用のコントローラー作成するため、プロジェクト直下で以下のコマンドを実行します。
今回はPostControllerという名前にします。

プロジェクト直下/app/Http/Controllersに移動します。
フォルダ移動後、作成したコントローラーを以下の通りに修正します。

ルーティングの定義を追加する

リクエストをハンドリングするため、設定を追加します。
プロジェクト直下/routes/web.phpを開き、以下の定義を追加します。

ビューを作成する

プロジェクト直下/resources/views内にindex.blade.phpを作成し、以下の通りに修正します。

動作確認

開発用サーバを起動するため、プロジェクト直下で以下のコマンドを実行します。

サーバ起動後、http://localhost:8000/index にアクセスします。
表示された画面で何も入力せず、送信ボタンを押下します。
送信ボタン押下後、プロジェクト直下/storage/logs内にあるログを開くと、
ミドルウェアで指定したデフォルト値が設定されていることが確認できます。

まとめ

以上がLaravelのミドルウェアで入力項目のデフォルト値を設定する一例でした。

使いどころとしては単純に入力がないときにデフォルト値を設定したい場合や、
チェックボックスにチェックがない場合に(リクエストにデータが含まれないため)、
デフォルト値を設定するような使い方ができるかと思います。
実装の一例として参考になりましたら幸いです。


--------------------------
システム開発のご要望・ご相談はこちらから

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です