menu

【Laravel】Requestクラスに手動でパラメータを追加・上書きする

公開日:2021年12月28日 カテゴリー:Laravel, PHP, 開発

フォームの内容などをリクエストパラメータとして受け取る際に使用するLaravelのRequestクラスがありますよね。

そのとき、フロント側(HTML、Javascript)でフォームとして追加するのではなく、サーバ側(php、ここではコントローラーやリクエストクラス)でパラメータを追加するにはどうすればいいのでしょうか。

HTMLの input type="hidden" では値を検証ツールで変えられるおそれがあるため使いたくありません。。。

そこで、Requestクラスのmergeメソッドを以下のように使用します。

$request->merge(['name' => 'whizz']);

これで新たにパラメータの追加ができます。

もともと’name’というリクエストパラメータが存在する場合は、更新となります。

 

パラメータを追加する前(元々画面から’testParam’というパラメータを渡しています)

ControllerでRequestクラスに追加する場合(’mergeParam’というパラメータを追加)

RequestクラスでRequestクラスに追加する場合(’mergeRequestClass’というパラメータを追加)

注意

やりがちなミスとして、

$request->name$request->input('name') でパラメータが取得できるため、

$request->name = 'whizz';

$request->input('name') = 'whizz';

としてしまいがちですが、追加や上書きはできません。

 

お役に立てれば幸いです。

ウィズテクノロジーで一緒に働きませんか?
分野を限定せず幅広い事業を展開。新しい技術の導入にも積極的に取り組んでおり、チャレンジや成長する機会が沢山。
あなたの経験・知識を活かしながら一緒にIT業界を盛り上げて行きましょう!
採用情報詳細はコチラ