ルートパラメータの概要
ルートパラメータは、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の値が表示されます。