[Laravel] Getの値をコントローラーで取得する方法

LaravelでGETの値をコントローラーで利用する方法についてです。ルーティングの設定と、コントローラーのメソッドの設定の作業が必要です。

簡単なパラメータの取得と、少し複雑な形のデータの取得を記載します。

GETの中身の確認

routes > web.php

アクセスしてみる → http://www.example.com:8000/test?id=1&cate=2&color=3

HTTP > Controllers > PostsContoroller.php

testGET /test?id=1&cate=2&color=3 HTTP/1.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Encoding: gzip, deflate Accept-Language: ja,en-US;q=0.9,en;q=0.8 Cache-Control: max-age=0 Connection: keep-alive Cookie: XSRF-TOKEN=eyJpdiI6ImhUa2kyTXUydnkzNHhUYXF3Y1dEVmc9PSIsInZhbHVlIjoiaXN5WWFGNTRoNDh5empucW9VSXVuSGZjVXh4Q0hPK1ZhcmFINjBwWTdYQlYzUXVsWFFyTGt0Wk1YemxzOGZpMyIsIm1hYyI6IjViOWRhMjUwZWU3Nzg0OWE4ZTE2YTUyNTJmMTA0YzVmOTg3NzFhYmRiYzAyNDE5ZGFkNzVlNTcwOWNjZTViODIifQ%3D%3D; laravel_session=eyJpdiI6IlJwMVhaSGpOODZvaW9UazhBY21YcXc9PSIsInZhbHVlIjoiXC9zSTluUkt3aDJqNEZKVUYwbGdXVnVPYVpoaVMwN2xtSXBLOUxEWTJlOFRJdGtcLzdJbUhWaEk2UVRicXdsMjJQIiwibWFjIjoiOGYwOWRkZWFkZDA4NDU1YmQ1MTNjM2RiNmYwMzhlOTg3Y2JhYjU1OWQ2NmE1NzdjNGU2NTNmN2E1NGQ1MmI1ZCJ9 Host: xxx.xxx.xxx.xxx:8000 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36 Cookie: XSRF-TOKEN=hZnK6rAMUQC3r2XLuW88QSWyI56muJodLgD2Sz41; laravel_session=G5n9OdXNIM66lSobzAfWTcSiV5WSaZq9mjlXhfGl

はじめに GET でドメイン以下の「/test?id=1&cate=2&color=3」が取得されています。
TOKENやUser-Agent、XSRF-TOKEN、laravel_session などの情報が入っていました。

コントローラーのtestメソッドで出力を「 dd($request); 」にすると以下のようになります。

ddで出力して中身をみてみると、queryの項目の中に#parametersがあり、その中に、id ,cate ,colorが配列で入っています。

今回はqueryの部分を取得したいのでコントローラーのtestメソッドで「dd($request->query);」としてみます。

今度はqueryの中身が出力されました。

queryのパラメータの中身は「$request->all();」で取得することができます。

「データの絞り込み」

複雑なURLの取得

「https://www.example.com:8000/test/1/?no=1&cate=2&color=3」というようなURLをGETしてみます。
「/test/」の後の「/1/」はidを意味しています。

コントローラーでこのパラメータを変数に入れてみます。

$id=1;
$no=1;
$cate=2;
$color=3;
こんな感じに取得できるようにします。

$idは自動に取得できているので、その他のパラメタを取得すればOKです。

CakePHPで作ったシステムはこのようなURL構造になっていたりするので、URLの形を変えないでLaravelに移行するときに活用できます。



Author: webmaster