laravel optional parameter code example

Example 1: laravel route match

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

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

Example 2: laravel route optional parameter

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

Example 3: laravel optional params

//Use Route::get('/path/{id}/{start?}/{end?}', 'Controller@index'); 
//and handle the parameters in the controller function:

public function index($id, $start = null, $end = null)
{
    if (!$start) {
        // set start
    }

    if (!$end) {
        // set end
    }

    // do other stuff
}

Example 4: 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