【Laravel】リクエストボディにQUERY_STRING形式のデータがあったら

 あまり需要がないかもしれませんが、POST時のリクエストボディにQUERY_STRING形式のデータがあった場合に、クエリパラメータを変数にセットする方法です。

 LaravelにはRequestクラスがあって、リクエストデータのパラメータへのアクセスは非常に簡単にできるようになっています。

 ここで紹介するのは、APIからのコールバック時のリクエストボディに、API呼び出し時のクエリパラメータが丸ごとコピーされていて、かつコールバック時の処理で使用したい、なんてケースに使える方法です。

結論

  parse_str()を使用するだけです。

$query_string = $request->query_string ; // 例:param1=hoge1¶m2=hoge2 
parse_str($query_string,$params);
dd($params);
// array:2 [
//  "param1" => "hoge1"
//  "param2" => "hoge2"
//]

参考になればうれしいです。

コメント