单个Laravel 5.8控制器操作上的多个命名路由

时间:2019-08-13 16:55:12

标签: php laravel

我想为路由命名几个类别,它们都使用相同的控制器操作,因此我将它们分组,并做了我认为可行的事情,但是没有。如果我只有一条路线,它会起作用,但是当我添加其他路线时会中断。我对Laravel还是陌生的,所以这并不令我感到惊讶-这样的路由似乎有点肮脏,但是我发现很多帖子都提倡许多硬编码的路由。

web.php

Route::group(['prefix' => 'categories', 'as' => 'categories.'], function () {
    Route::get('/', 'CategoryController@index')->name('categories');
    Route::get('/{category}', 'CategoryController@show')->where('category', 'amusement-rides')->name('amusement-rides');
    Route::get('/{category}', 'CategoryController@show')->where('category', 'arts-and-crafts')->name('arts-and-crafts');
    Route::get('/{category}', 'CategoryController@show')->where('category', 'carnival-booths')->name('carnival-booths');
    Route::get('/{category}', 'CategoryController@show')->where('category', 'carnival-games')->name('carnival-games');
    Route::get('/{category}', 'CategoryController@show')->where('category', 'concession-machine-rental')->name('concession-machine-rental');
    Route::get('/{category}', 'CategoryController@show')->where('category', 'equipment-rentals')->name('equipment-rentals');
    Route::get('/{category}', 'CategoryController@show')->where('category', 'events')->name('events');
});

1 个答案:

答案 0 :(得分:2)

您的web.php文件应该喜欢。

Web.php

choice_action_map[int(input())]()

在您的浏览器中,称为的URL。

URL

Route::group(['prefix' => 'categories', 'as' => 'categories.'], function () {
    Route::get('/', 'CategoryController@index')->name('categories');
    Route::get('/{category}', 'CategoryController@show')->name('show');

});

最后,如果要访问控制器中的类别名称,则可以使用类似参数的方式进行访问。

控制器

http://baseurl/categories/amusement-rides
http://baseurl/categories/arts-and-crafts
http://baseurl/categories/carnival-booths
http://baseurl/categories/carnival-games
http://baseurl/categories/concession-machine-rental
http://baseurl/categories/equipment-rentals
http://baseurl/categories/equipment-rentals