Laravelでのパラメータの受け取り方【現役エンジニアが解説】

PROGRAM

今回は、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属性の値なしで全てのパラメータの受け取りが可能となりますが、不要なデータも受け取る可能性があり、推奨されないケースがあります。