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了。
比如我有一个管理页面管理图书的路由,路由是这样设置的:
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了。