Laravel 使用 Route::resource 生成路由需要添加前缀 /admin/

Laravel generate the routes using Route::resource need to add prefix /admin/

比如我有一个管理页面管理图书的路由,路由是这样设置的:

Route::resource('books','Admin\BookController');

它自动生成了一些用于插入/更新/删除等的路由...

/books/create
/books/1/edit

问题是,这是管理页面,我希望 link 是

/admin/books/create 
/admin/books/1/edit

如何指定要成为管理员的资源?它自动有前缀 /admin/ 谢谢

更新:

将您的 route 更改为

Route::resource('admin/books','Admin\BookController');

如果你需要多条路由的前缀,你应该使用route group:

Route::group(['prefix' => 'admin'], function()
{
    Route::resource('books','Admin\BookController');
});

或者,如果您只需要使用一个控制器,您可以这样做:

Route::resource('/admin/books','Admin\BookController');

只是为了添加到 Alexey 的回答中。我也在组中使用命名空间。下面是例子。

Route::group([
    'prefix'     => 'admin',
    'namespace'  => 'Admin',
    'middleware' => 'admin.routeNeedsPermission:view-admin-management',
], function() { 
       Route::resource('books','BookController');
});

这样你就不需要在所有路由中都写上admin了。