3月になりました。まだまだ寒いですね。

 

意外とコントローラ→viewの記事が少なかったのでそういう系統を。

題名にある通り、コントローラでパラメータを付けたい!っていう場合です。

 

フォームにテキストボックス一つだけの単純なページで確認。

 

WS000225WS000226 WS000220

 

ちなみに、リクエストオブジェクトがこうやってコントローラーのメソッドで引数として取得できるのはlaravelのサービスコンテナが自動的にインスタンスをとってきてくれるからなんです。

すごいですねー。

こういうhtmlでは、リクエストの結果を表示すると次のようになります。

Requestオブジェクトのallメソッドは、パラメータを全部取得します。

 

 

WS000227 WS000228 WS000229

テキストボックスのインプットだけちゃんと入ってますね。

ここに、ビュー(HTML)上にはないけどデフォルトの値を追加したい!って場合が今回の話。

 

で、先に答えを言うとRequest::merge(array $input)っていうメソッドがあるのでそれを使えば大丈夫です。

「addとかsetとかないですけどー」ってずっと探してました。

 

こんな感じです。

WS000232 WS000234

 

「getとpostどっちに追加されるのよー」って思ったかもしれません。

その時のリクエストに応じて自動的にやってくれます。

 

laravel/framework/src/Illuminate/Http/Request.php

WS000230 WS000231

 

素晴らしいですね。

ただ、merge という言葉の通り「上書き」されるので、そうされたくない時は存在チェックしてからmerge です。

 

WS000233

これでok。