GETリクエストからパラメータを受け取る方法
今回はGETリクエストのパラメータをLaravelで取得する方法をご紹介します!
具体的には、以下のURLからパラメータを取得します。
http://localhost:800/hoge?search_word=検索テキスト&target_num=2&target_date=
Requestインスタンスを使用する
まずは、Requsetインスタンスを用いてパラメータを取得する方法です。
use Illuminate\Http\Request;
public function example(Request $request)
{
$search_word = $request->input('search_word');
$target_num = $request->input('target_num');
$target_date = $request->input('target_date');
$search_word // 「検索テキスト」が格納されている
$target_num // 「2」が格納されている
$target_date // 「null」が格納されている
}
$request->input('キー')
でパラメータを取得することができます。
また、input()のいいところは第二引数に初期値を設定できるところです。
例えば、$request->input('target_time')
とすると今回target_timeはパラメータ内に含まれないので、nullになりますが、$request->input('target_time', '19:00')
とすると、target_timeは定義されていませんが、19:00が初期値として取得できます。
query()メソッドを使用する
query()メソッドを用いてパラメータを取得する方法です。
use Illuminate\Http\Request;
public function example(Request $request)
{
$search_word = $request->query('search_word');
$target_num = $request->query('target_num');
$target_date = $request->query('target_date');
$search_word // 「検索テキスト」が格納されている
$target_num // 「2」が格納されている
$target_date // 「null」が格納されている
}
query()メソッドとinput()の違いは、input()はPOSTのデータも取得できるところです。
query()はGETのパラメータは取得できますが、POSTのデータを取得することはできません。
一方でinput()はGETとPOST両方のデータを受け取ることができます。
GETから取得することを明示的に示したいのであればquery()を使用することをお勧めします。
まとめ
今回はGETリクエストのパラメータを取得する方法を紹介しました。
是非使ってみてください!
コメント