我的路线定义为:
Route::resource('item', 'ItemController');
我想要做的是将一些路线,尤其是edit
和delete
放在一个群组中。
Route::group(['middleware' => ['role']], function() {
Route::resource('item', 'ItemController', ['only' => ['edit', 'delete']]);
}
但是,这并不起作用。我必须逐个定义每条路线吗?或者有更好的解决方案吗?
编辑:
对不起,但似乎我没有正确地提出这个问题。所以,让我在这里做一些澄清。
我有一个基本的auth
用户,可以创建和查看items
。我不想要它做的是编辑和删除。
我还有一个role
用户,可以执行auth
可以执行的操作并编辑和删除items
。
基本上,普通授权用户可以访问items
,而role
个用户可以完全访问。
目前的代码似乎只为role
个用户提供了编辑和删除功能,无法查看或创建。
为了让它更清晰,这就是我的实际路线:
Route::group(['middleware' => ['auth']], function()
{
Route::resource('items', 'SitesController');
Route::group(['middleware' => ['role']], function() {
Route::resource('item', 'ItemController', ['only' => ['edit', 'delete']]);
});
});
也许我以错误的方式解决这个问题?
答案 0 :(得分:0)
上面的代码可以使用,您只是错误地命名了操作。您应该使用销毁而不是删除。请尝试以下代码:
Route::resource('item', 'ItemController');
Route::group(['middleware' => ['role']], function() {
Route::resource('item', 'ItemController', ['only' => ['edit', 'destroy']]);
});
您可以运行 php artisan route:list 进行验证。您应该在两条路线中看到角色中间件。