【发布时间】:2015-08-05 15:37:40
【问题描述】:
我的路线定义为:
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']]);
});
});
也许我用错了方法?
【问题讨论】:
-
您只想分配中间件进行编辑和删除?
-
是的@michael,基本上,每个人都可以查看/创建
item,但只有具有特定角色的用户才能编辑或删除它们。 -
对不起,我可能只是不明白这个问题。你能展示一下我们正在谈论的中间件吗?
-
我的其他评论被删除了吗?奇怪的。我想做的是让普通授权用户可以访问
create、index和store。虽然我希望“角色”用户拥有所有这些以及edit和delete。 -
好的,现在我明白了。然后我认为应该像我说的那样分配中间件,如果用户不是角色用户,应该会失败。