[英]Laravel Routing - Separate some routes
我将路线定义为:
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
用户可以具有COMPLETE访问权限。
当前代码似乎仅赋予role
用户编辑和删除功能,而没有查看或创建的功能。
为了更加清楚,这是我的实际路线:
Route::group(['middleware' => ['auth']], function()
{
Route::resource('items', 'SitesController');
Route::group(['middleware' => ['role']], function() {
Route::resource('item', 'ItemController', ['only' => ['edit', 'delete']]);
});
});
也许我会以错误的方式进行操作?
上面的代码将起作用,您只是错误地命名了操作。 您应该使用destroy而不是delete 。 尝试以下代码:
Route::resource('item', 'ItemController');
Route::group(['middleware' => ['role']], function() {
Route::resource('item', 'ItemController', ['only' => ['edit', 'destroy']]);
});
您可以运行php artisan route:list进行验证。 您应该在两条路由中看到已启用角色中间件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.