Search code examples
phplaravellaravel-routinglaravel-controller

Is it possible to use route parameter in route naming in laravel?


I am trying invokable controller in Laravel :

php artisan make:controller ProvisionServer --invokable

And I want to do something like :

Route::get('/proviser/{page}',[App\Http\Controllers\ProvisionServer::class, '__invoke'])
       ->name('proviser.'.$page)
       ->where('page','index|about|contact');

In order to call 'About' url like

route('proviser.about')

Obviously, this seems not working. I get

Undefined variable $page

Is there anyway to do it ? thanks


Solution

  • you can make $pages array and defined router like this

    $pages = ['index','about','contact'];
    foreach($pages as $page){
        Route::get('proviser/'.$page,[App\Http\Controllers\ProvisionServer::class, '__invoke'])
           ->name('proviser.'.$page);
    }