route optional parameter laravel code example

Example 1: route optional parameter laravel

Route::get('user/{name?}', function ($name = null) {
    return $name;
});

Route::get('user/{name?}', function ($name = 'John') {
    return $name;
});

Example 2: laravel route match

Route::match(['get', 'post'], '/', function () {
    //
});

Route::any('/', function () {
    //
});

Example 3: laravel route optional parameter

Route::get('/sample/{param?}', 'SampleController@index');

Example 4: laravel route optional parameter

// You can make a parameter optional by placing a '?' after the parameter name.
// Make sure to give the route's corresponding variable a default value:
Route::get('user/{name?}', function ($name = null) {
    return $name;
});

Route::get('user/{name?}', function ($name = 'John') {
    return $name;
});

Example 5: laravel route

Route::get('user/profile', [UserProfileController::class, 'show'])->name('profile');

Example 6: route parameter type laravel

Route::get('/user/{name}', function ($name) {
    //
})->where('name', '[A-Za-z]+');

Route::get('/user/{id}', function ($id) {
    //
})->where('id', '[0-9]+');

Route::get('/user/{id}/{name}', function ($id, $name) {
    //
})->where(['id' => '[0-9]+', 'name' => '[a-z]+']);

reference : https://laravel.com/docs/8.x/routing#parameters-regular-expression-constraints