In this laravel tutorial we wil discuss how to pass multiple parameters in laravel 8 route.We send variables to controller method by laravel route method these variables show in route url.
Laravel 8 route pass multiple parameters
if you want to find how to pass multiple parameter throw laravel 8 named route than you right palace. We pass simple parameter and key value parameter throw routes and it get in controller method throw parameter key or name.
Laravel provide two type of parameters.
- Route required parameter
- Route optional parameter
Route required parameter
When we use required parameter than its value pass in route else we get error.Firstly these parameter key name define in routes web.php file than we get its value in controller method by corresponding key name.Let an example -
web.php file
Route::get('student-detail/{id}/{parameter}',[StudentController::class,'detail'])->name('student.detail');
Controller
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class StudentController extends Controller{ public function detail(Request $request){ $id = $request->id; $parameter = $request->parameter; } }
view file
In view file we define our route.
<a href="{{ route('student.detail', ['id' => 5, 'parameter' => 'advanced-web-hindi']) }}">Student detail</a>
thus here two parameter(id and parameter) pass and both required if any miss than it give error where we call route.
Route optional parameter
The second type of route parameter is otional as its name these parameter are optional if we not give its value than it not give error.Let an example of optional parameter.
web.php file
for make an parameter to optional give a question mark sign after parameter.
Route::get('student-detail/{id?}/{parameter?}',[StudentController::class,'detail'])->name('student.detail');
view file
In view file we also give some parameter that are not define in our route these parameter show after question mark sign in url.
<a href="{{ route('student.detail', ['id' => 5, 'parameter' => 'advanced-web-hindi', 'name' => 'anmol']) }}">Student detail</a>
this url show as https://www.example.com/student-detail/5/advanced-web-hindi?name=anmol
Controller
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class StudentController extends Controller{ public function detail(Request $request){ $id = $request->id; $parameter = $request->parameter; $name = $request->name; } }