如何解决重名resource路由报错问题

1. 运行环境

Macos 12

1). 当前使用的 Laravel 版本?

Laravel Framework 7.30.4
//: <> (使用 php artisan --version 命令查看)

2). 当前使用的 php/php-fpm 版本?

PHP 版本:php7.4

在多个route文件中,即使namespace不同,注册了同名resource路由也会报错路由重复

Route::resource("banners", BannerController::class);
报错: Unable to prepare route [brand/banners] for serialization. Another route has already been assigned name [banners.index]

问下路过的大佬有好的解决办法么?

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

可以配置 as

Route::group([
    'prefix'        => config('admin.route.prefix'), // 配置路由 生成 url 的前缀 
    'namespace'     => config('admin.route.namespace'), // 配置路由组中控制器的 namespace
    'middleware'    => config('admin.route.middleware'), // 配置路由组中间件
    'as'            => config('admin.route.prefix') . '.', // 配置路由组中路由命名的前缀。
], function (Router $router) {

    $router->get('/', 'HomeController@index')->name('home');

    $router->any('users/load','AdminUserController@loadFile');
    $router->any('users/ajax','AdminUserController@ajax')->name('users.ajax');
    $router->resource('users','AdminUserController');


});
3年前 评论
osang (楼主) 3年前
osang (楼主) 3年前
讨论数量: 3

可以配置 as

Route::group([
    'prefix'        => config('admin.route.prefix'), // 配置路由 生成 url 的前缀 
    'namespace'     => config('admin.route.namespace'), // 配置路由组中控制器的 namespace
    'middleware'    => config('admin.route.middleware'), // 配置路由组中间件
    'as'            => config('admin.route.prefix') . '.', // 配置路由组中路由命名的前缀。
], function (Router $router) {

    $router->get('/', 'HomeController@index')->name('home');

    $router->any('users/load','AdminUserController@loadFile');
    $router->any('users/ajax','AdminUserController@ajax')->name('users.ajax');
    $router->resource('users','AdminUserController');


});
3年前 评论
osang (楼主) 3年前
osang (楼主) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!