1
1

More than 1 year has passed since last update.

【Laravel】URL情報から値を取得する方法(クエリ文字列)

Last updated at Posted at 2023-01-08

はじめに

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 }}が値を表示させる部分になります。

resources/views/test.blade.php
<h2>クエリ文字列を使ってURLから値を取り出してみる件</h2>
<h3>名前:{{ $name }}</h3>
<h3>年齢:{{ $age }}</h3>

ルーティングファイル

routes/web.php
Route::get('test', 'App\Http\Controllers\TestController@index');

コントローラファイル

クリエ文字列は、Requestにて送信されるので、$request->項目という形で取り出します。
下記コードでは、nameを$request->name、ageを$request->ageという形で取り出しています。

app/Http/Controllers/testController.php
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」が表示されているのが確認できました。
スクリーンショット 2023-01-08 12.06.10.png

最後に

クリエ文字列を使ってURL情報から値を取り出す方法について説明しました。
直接URLを打ち込んで情報を渡す事は、実際にはぼないと思います。
しかし、GET送信ではURLに各種パラメータを設定してコントローラに値を渡しています。
やっている事自体は一緒なので、その理解につながればと思います。

最後まで読んで頂きありがとうございました!

参考書籍

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1