はじめに
URL情報を使ってコントローラ側に値を渡す方法について説明します。
今回は、クエリ文字列を使用して実現していきます。
使用するLaravelのバージョンは、9.43.0
です。
クエリ文字列とは
クエリ文字列とは、URLの後ろに「?◯◯=✕✕」といった形式で書かれた文字列のことです。
これを使ってコントローラに値を渡すことができます。(GET送信)
コードを書いてみる
クエリ文字列を使って、URL情報から値を取り出して画面表示させるコードを書いてみます。
下記URLを使って名前と年齢が表示されることを確認してみます。
期待する表示は、名前が「テスト太郎」、年齢が「24」と表示されることです。
クエリ文字列をURLに設定する方法は、URL末尾に?
をつけて項目名=値
です。
複数の値を設定する場合は、&
を使ってつなげていきます。
例) http://127.0.0.1:8000/test?name=テスト太郎&name=24
viewファイル
{{ $name }}
と{{ $age }}
が値を表示させる部分になります。
<h2>クエリ文字列を使ってURLから値を取り出してみる件</h2>
<h3>名前:{{ $name }}</h3>
<h3>年齢:{{ $age }}</h3>
ルーティングファイル
Route::get('test', 'App\Http\Controllers\TestController@index');
コントローラファイル
クリエ文字列は、Requestにて送信されるので、$request->項目
という形で取り出します。
下記コードでは、nameを$request->name
、ageを$request->age
という形で取り出しています。
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class TestController extends Controller
{
public function index(Request $request)
{
// $requestを使って各種URL情報を取り出す
$message = [
'name' => $request->name, // 「name=テスト太郎」を取り出す
'age' => $request->age, // 「age=24」を取り出す
];
// viewファイルの指定と表示データを設定する
return view('test', $message);
}
}
表示結果
表示結果は下記になります。
期待通り「テスト太郎」と「24」が表示されているのが確認できました。
最後に
クリエ文字列を使ってURL情報から値を取り出す方法について説明しました。
直接URLを打ち込んで情報を渡す事は、実際にはぼないと思います。
しかし、GET送信ではURLに各種パラメータを設定してコントローラに値を渡しています。
やっている事自体は一緒なので、その理解につながればと思います。
最後まで読んで頂きありがとうございました!
参考書籍