Laravelでのパラメータの受け取り方【現役エンジニアが解説】
今回は、Laravelでのパラメータの受け取り方について、簡単に解説していきます。
一つひとつ受け取る
LaravelではRequestクラスを使うことでパラメータを受け取れます。
<input type="text" name="hoge" value="ほげ">
上記のようなinput要素を想定すると、name属性の値が受け取りの際に必要になります。
public function getRequestData(Request $request) { $request->input('hoge'); // ほげ }
上記のように、inputメソッドを使って、その引数にname属性の値を指定すると、データを受け取ることができます。
指定してまとめて受け取る
Laravelではパラメータをまとめて受け取ることも可能です。
<input type="text" name="hoge1" value="ほげ1"> <input type="text" name="hoge2" value="ほげ2"> <input type="text" name="hoge3" value="ほげ3">
上記のようなinput要素を想定すると、受け取りの際にname属性の値が必要となる点はinputメソッドと同じです。
public function getRequestData(Request $request) { $request->only(['hoge1', 'hoge2', 'hoge3']); // array('hoge1' => 'ほげ1','hoge2' => 'ほげ2','hoge3' => 'ほげ3'); }
onlyメソッドを使って、引数にname属性の値の配列を指定することで、その戻り値が連想配列となり、まとめて受け取ることができます。
指定しないでまとめて受け取る
Laravelではもっと簡単にパラメータをまとめて受け取れます。
<input type="text" name="hoge1" value="ほげ1"> <input type="text" name="hoge2" value="ほげ2"> <input type="text" name="hoge3" value="ほげ3">
onlyメソッドで受け取る場合と異なり、上記のname属性の値は受け取る際には不要です。
public function getRequestData(Request $request) { $request->all(); // array('hoge1' => 'ほげ1','hoge2' =>'ほげ2','hoge3' => 'ほげ3'); }
allメソッドを使うとname属性の値なしで全てのパラメータの受け取りが可能となりますが、不要なデータも受け取る可能性があり、推奨されないケースがあります。