3月になりました。まだまだ寒いですね。
意外とコントローラ→viewの記事が少なかったのでそういう系統を。
題名にある通り、コントローラでパラメータを付けたい!っていう場合です。
フォームにテキストボックス一つだけの単純なページで確認。
ちなみに、リクエストオブジェクトがこうやってコントローラーのメソッドで引数として取得できるのはlaravelのサービスコンテナが自動的にインスタンスをとってきてくれるからなんです。
すごいですねー。
こういうhtmlでは、リクエストの結果を表示すると次のようになります。
Requestオブジェクトのallメソッドは、パラメータを全部取得します。
テキストボックスのインプットだけちゃんと入ってますね。
ここに、ビュー(HTML)上にはないけどデフォルトの値を追加したい!って場合が今回の話。
で、先に答えを言うとRequest::merge(array $input)っていうメソッドがあるのでそれを使えば大丈夫です。
「addとかsetとかないですけどー」ってずっと探してました。
こんな感じです。
「getとpostどっちに追加されるのよー」って思ったかもしれません。
その時のリクエストに応じて自動的にやってくれます。
laravel/framework/src/Illuminate/Http/Request.php
素晴らしいですね。
ただ、merge という言葉の通り「上書き」されるので、そうされたくない時は存在チェックしてからmerge です。
これでok。