概要
ルートパラメーターは、idなどの値を指定するほか、モデルのインスタンスを直接渡してコントローラーで受け取ることができる。
値を渡して値を受け取る
ルーティング
以下の様にルーティングを設定したとする。
| 
					 1 2  | 
						Requeset::get('/users/{id}', 'UserController@show')   ->name('users.show');  | 
					
ルーティングは以下のようになる。
| 
					 1 2 3 4 5 6 7 8  | 
						$ php artisan route:list +--------+----------+------------+------------+------------------------------------------+------------+ | Domain | Method   | URI        | Name       | Action                                   | Middleware | +--------+----------+------------+------------+------------------------------------------+------------+ ........ |        | GET|HEAD | users/{id} | users.show | App\Http\Controllers\UserController@show | web        | ........ +--------+----------+------------+------------+------------------------------------------+------------+  | 
					
ビューでの渡し方
ビューからのルーティングでidなどの値を渡すなら、以下のようにURLで展開させるかroute()ヘルパーの第2引数で指定する。
| 
					 1 2 3 4 5  | 
						<!-- URLで値を展開させる --> <a href="/users/{{ $id }}">プロフィール</a> <!-- route()ヘルパーの第2引数に渡す --> <a href="{{ route('users.show', $id) }}">プロフィール</a>  | 
					
いずれの場合も、以下のようなURLでGETリクエストされる。
| 
					 1  | 
						http://localhost/users/2 ←idの値  | 
					
ログイン済みユーザーのidを渡す場合、以下のように書ける。
| 
					 1 2 3 4 5  | 
						<!-- URLで値を展開させる --> <a href="/user/{{ \Auth::user()->id }}">プロフィール</a> <!-- route()ヘルパーの第2引数に渡す --> <a href="{{ route('user.show', \Auth::user()->id) }}">プロフィール</a>  | 
					
コントローラーでの受け取り方
コントローラー側でパラメーターを受け取る場合、アクションメソッドの引数にパラメーターが渡されるので、それをそのまま利用すればよい。
| 
					 1 2 3 4 5 6 7 8 9  | 
						class UserController extends Controller {   public function getProfile($id) {     return 'user name:" . \App\User::find($id)->name;   } } // ブラウザー表示例 // user name:user2  | 
					
モデルのインスタンスのまま渡して受け取る
ルーティング
以下の様にルーティングを設定する。
| 
					 1 2  | 
						Requeset::get('/users/{user}', 'UserController@show')   ->name('user.show');  | 
					
リソースルーティングで指定するなら以下のとおり。
| 
					 1 2  | 
						Route::resource('users', 'UserController')   ->only(['show']);  | 
					
何れの場合もルーティングは以下のようになる。
| 
					 1 2 3 4 5 6 7 8  | 
						$ php artisan route:list +--------+----------+--------------+------------+------------------------------------------+------------+ | Domain | Method   | URI          | Name       | Action                                   | Middleware | +--------+----------+--------------+------------+------------------------------------------+------------+ ........ |        | GET|HEAD | users/{user} | users.show | App\Http\Controllers\UserController@show | web        | ........ +--------+----------+--------------+------------+------------------------------------------+------------+  | 
					
ビューでの渡し方
ビューからからのルーティングでモデルのインスタンスを渡す場合も、URLで展開させるかroute()ヘルパーの第2引数で指定する。ここでは認証済みのユーザーインスタンスを渡している。
| 
					 1 2 3 4 5  | 
						<!-- URLで値を展開させる --> <a href="/users/{{ \Auth::user() }}">プロフィール</a> <!-- route()ヘルパーの第2引数に渡す --> <a href="{{ route('users.show', \Auth::user()) }}">プロフィール</a>  | 
					
インスタンスを渡しても、ルートパラメーターはidの値になる。
| 
					 1  | 
						http://localhost/users/2  | 
					
コントローラーでの受け取り方
コントローラーのアクションでは、引数にモデルクラスのメソッドインジェクションを適用して、idに対応したインスタンスを受け取る。
| 
					 1 2 3 4 5 6 7 8 9  | 
						class UserController extends Controller {   public function getProfile(\App\User $user) {     return 'user name:" . $user->name;   } } // ブラウザー表示例 // user name:user2  | 
					
コントローラーの冒頭でモデルをuse指定してもよい。
| 
					 1 2 3 4 5 6 7 8 9 10 11 12  | 
						use App\User; // user \App\Userでもよい class UserController extends Controller {   public function getProfile(User $user) {     return 'user name:" . $user->name;   } } // ブラウザー表示例 // user name:user2  |