组前缀中的路由名称不包含前缀

时间:2020-03-12 17:42:14

标签: laravel routes laravel-routing laravel-6 laravel-resource

我有以下路线:

                'ajax': {
                    complete: function (data) {
                        console.log(data['responseJSON']);
                    },
                    'url': 'xxx.php',
                },

我希望资源路由的名称分别以Route::group(['middleware' => ['role:admin'], 'prefix' => 'admin'], function() { Route::resource(__('route.events'), 'Auth\RoleAdmin\EventController'); }); Route::group(['middleware' => ['role:user'], 'prefix' => 'user'], function() { Route::resource(__('route.events'), 'Auth\RoleUser\EventController'); }); admin.开头,但是不会发生。

这是命令user.的结果:

php artisan route:list

您会看到admin路由和用户路由具有相同的名称,并且这些名称不包含前缀。

2 个答案:

答案 0 :(得分:1)

将路由更改为在组外具有前缀和中间件:

Route::prefix('admin')
->middleware('role:admin')
->group(function() {
    Route::resource(__('route.events'), 'Auth\RoleAdmin\EventController');
});

Route::prefix('user')
->middleware('role:user')
->group(function() {
    Route::resource(__('route.events'), 'Auth\RoleUser\EventController');
});

https://laravel.com/docs/6.x/routing#route-groups

答案 1 :(得分:1)

kerbholz的解决方案不起作用,但是它帮助我解决了问题。

Route::prefix('admin')
    ->middleware('role:admin')
    ->name('admin.') // <-- I had to add this line in order to work
    ->group(function() {
        Route::resource(__('route.events'), 'Auth\RoleAdmin\EventController');
});