laravel - Laravel 7 - 为什么我不能在不同的路由组中使用相同的路由?
问题描述
所以我的路线中有这段代码:
// Facilitator Priviledges
Route::group(['roles'=>'facilitator'],function(){
//Material
Route::get('/material', 'MaterialController@index');
Route::post('/material', 'MaterialController@store');
Route::get('/material/{course:id}/create', 'MaterialController@create');
Route::get('/material/detail/{course:id}', 'MaterialController@show');
Route::get('/material/{material:id}/edit', 'MaterialController@edit');
Route::patch('/material/{material:id}', 'MaterialController@update');
Route::delete('/material/{material:id}', 'MaterialController@destroy');
});
//Admin Priviledges
Route::group(['roles'=>'admin'],function(){
Route::resource('/categories', 'CategoriesController');
//Material
Route::get('/material', 'MaterialController@index');
Route::post('/material', 'MaterialController@store');
Route::get('/material/{course:id}/create', 'MaterialController@create');
Route::get('/material/detail/{course:id}', 'MaterialController@show');
Route::get('/material/{material:id}/edit', 'MaterialController@edit');
Route::patch('/material/{material:id}', 'MaterialController@update');
Route::delete('/material/{material:id}', 'MaterialController@destroy');
});
它具有相同的路由,在这种情况下,管理员和促进者角色都可以访问它的Material Route,但是当代码运行时,它只能是一个工作正常的角色(我正在使用管理员),另一个给出错误(503 ) 服务不可用
解决方案
你可以参考这个问题
或者你可以参考Laravel 政策
或者您可以简单地创建自己的策略并将其注册到您的中间件中。
Route::group(['middleware' => ['admin', 'facilitator']], function () {
Route::get('/material', 'MaterialController@index');
Route::post('/material', 'MaterialController@store');
Route::get('/material/{course:id}/create', 'MaterialController@create');
Route::get('/material/detail/{course:id}', 'MaterialController@show');
Route::get('/material/{material:id}/edit', 'MaterialController@edit');
Route::patch('/material/{material:id}', 'MaterialController@update');
Route::delete('/material/{material:id}', 'MaterialController@destroy');
});
推荐阅读
- c# - SQL 行列数据交换
- android - 我的应用程序大小为 256 Mb,我想将其发布到 Playstore,但最大大小为 100 mb 以上传现在要做什么
- css - 网格。如果 div 大于 x px,则将其向下移动到另一行
- python - 你有多个身份验证后端配置 Django?
- android - Android Paypal Native Checkout Sdk 无限加载
- anylogic - Anylogic:应用于 System Dynamics 数组的子维度的聚合函数
- python - 如何在 OpenCV python 中为特定轮廓分配特定 ID
- sql-server - 如何使用 SQL 提取作为任何给定更改的一部分部署的任何存储过程的详细信息?
- python - 如何将dict与python中的列表进行比较
- python - Scraper 不会返回所有图像。认为这是因为它不是异步的。如何使 for 循环在一个范围内异步工作?