スポンサーリンク

[Laravel] ルートパラメータの基本的な使い方

ルートパラメータの概要

ルートパラメータは、URLの一部をパラメータとして、コントローラー等に渡して利用します。

ソースコード

web.php

Route::get('top/{id}', 'App\Http\Controllers\MainController@index');

ルートパラメータとして重要なのは、’top/{id}’の個所。
このidをパラメータとして、コントローラーに渡すことができる。

コントローラー

class MainController extends Controller
{
    public function index($id){
        return view('main.index', ['id' => $id]);
    }
}

コントローラー側では、メソッドの引数に、[$パラメータ名]で指定すれば受け取れます。

テンプレート

<html>
<head>
    <title>トップページ</title>
</head>
<body>
    <h1>ID:{{$id}}</h1>
</body>
</html>
テンプレートは、単純に引数を表示するだけです。

実行結果

http://127.0.0.1:8000/top/1でアクセスすると、以下のようにパラメータが表示される。

オプションパラメータ

オプションパラメータは、パラメータを設定しない場合に、デフォルト値を設定してアクセスするようにします。

Route::get('top/{id?}', 'App\Http\Controllers\MainController@index');
Web.phpのパラメータ個所を”{id?}”に変更します。
    public function index($id='0'){
        return view('main.index', ['id' => $id]);
    }
コントローラー側では、引数にデフォルト値を設定します。
そうすると、
http://127.0.0.1:8000/topにアクセスした場合、画面にはID:0の値が表示されます。