Php 基于中间件的Laravel多级用户路由

Php 基于中间件的Laravel多级用户路由,php,laravel,laravel-5,routes,Php,Laravel,Laravel 5,Routes,你好,我有两个级别的用户: 1个超级管理员,可以看到和做任何事情 2 TD,只能看到东西,不能改变任何东西 我做了两件事: 1个auth.superadmin和1个auth.td 我的路线: Route::group(['middleware' => ['auth.superadmin']], function() { Route::get('/users/{id}/destroy', 'UsersController@destroy'); Route::get('/searchuser'

你好,我有两个级别的用户: 1个超级管理员,可以看到和做任何事情 2 TD,只能看到东西,不能改变任何东西

我做了两件事: 1个auth.superadmin和1个auth.td

我的路线:

Route::group(['middleware' => ['auth.superadmin']], function() {
Route::get('/users/{id}/destroy', 'UsersController@destroy');
Route::get('/searchuser', 'UsersController@searchuser');
Route::get('/users/create-worker', 'UsersController@getcreateworker');
Route::post('/users/post-create-worker', 'UsersController@postcreateworker');
Route::get('/users/create-agent', 'UsersController@getcreateagent');
Route::post('/users/post-create-agent', 'UsersController@postcreateagent');
Route::get('/users-optima', 'UsersController@indexoptima');
Route::resource('/users', 'UsersController');
Route::patch('/retours/{id}/postupdatefill','RetoursController@postupdatefill');
Route::get('/retours/{retourid}/addpart/{partid}','RetoursController@addpart');
Route::get('/retours/{retourid}/remove/{partid}','RetoursController@removepart');
Route::post('/retours/{retourid}/garantie','RetoursController@postonderdeelgarantie');
Route::get('/retours/{id}/updatefill/searchpart',   'RetoursController@searchpart');
Route::get('/searchpart', 'PartsController@searchpart');
Route::resource('/parts', 'PartsController');
});

Route::group(['middleware' => ['auth.td']], function() {
Route::get('/users/{id}/destroy', 'UsersController@destroy');
Route::get('/searchuser', 'UsersController@searchuser');

Route::resource('/users', 'UsersController',
    ['only' => ['index']]);

Route::patch('/retours/{id}/postupdatefill','RetoursController@postupdatefill');
Route::get('/retours/{retourid}/addpart/{partid}','RetoursController@addpart');
Route::get('/retours/{retourid}/remove/{partid}','RetoursController@removepart');
Route::post('/retours/{retourid}/garantie','RetoursController@postonderdeelgarantie');
Route::get('/retours/{id}/updatefill/searchpart', 'RetoursController@searchpart');
Route::get('/searchpart', 'PartsController@searchpart');
Route::resource('/parts', 'PartsController');
});
我的餐具: 超级管理员

if (auth()->check() && auth()->user()->level == 1) {
        return $next($request);
    }
    return abort(404, 'no entry to this page');
运输署

我试着从/Users开始。 TD只能在/用户处查看索引

当我这样做时,auth.superadmin无法看到索引@/用户

我做错了吗


非常感谢您的帮助。

您可以如下方式修改您的路线及其组:

Route::group(['middleware' => ['auth.td']], function() {
    Route::get('/users/{id}/destroy', 'UsersController@destroy');
    Route::get('/searchuser', 'UsersController@searchuser');
    Route::resource('/users', 'UsersController',['only' => ['index']]);
    Route::patch('/retours/{id}/postupdatefill','RetoursController@postupdatefill');
    Route::get('/retours/{retourid}/addpart/{partid}','RetoursController@addpart');
    Route::get('/retours/{retourid}/remove/{partid}','RetoursController@removepart');
    Route::post('/retours/{retourid}/garantie','RetoursController@postonderdeelgarantie');
    Route::get('/retours/{id}/updatefill/searchpart', 'RetoursController@searchpart');
    Route::get('/searchpart', 'PartsController@searchpart');
    Route::resource('/parts', 'PartsController');

    Route::group(['middleware' => ['auth.superadmin']], function() {
        Route::get('/users/{id}/destroy', 'UsersController@destroy');
        Route::get('/searchuser', 'UsersController@searchuser');
        Route::get('/users/create-worker', 'UsersController@getcreateworker');
        Route::post('/users/post-create-worker', 'UsersController@postcreateworker');
        Route::get('/users/create-agent', 'UsersController@getcreateagent');
        Route::post('/users/post-create-agent', 'UsersController@postcreateagent');
        Route::get('/users-optima', 'UsersController@indexoptima');
        Route::resource('/users', 'UsersController');
        Route::patch('/retours/{id}/postupdatefill','RetoursController@postupdatefill');
        Route::get('/retours/{retourid}/addpart/{partid}','RetoursController@addpart');
        Route::get('/retours/{retourid}/remove/{partid}','RetoursController@removepart');
        Route::post('/retours/{retourid}/garantie','RetoursController@postonderdeelgarantie');
        Route::get('/retours/{id}/updatefill/searchpart',   'RetoursController@searchpart');
        Route::get('/searchpart', 'PartsController@searchpart');
        Route::resource('/parts', 'PartsController');
    });
});
if (auth()->check() && (auth()->user()->level == 1 || auth()->user()->level == 2)) {
  return $next($request);
}
return abort(404, 'no entry to this page');
您的
auth:td
中间件应该是这样的:

Route::group(['middleware' => ['auth.td']], function() {
    Route::get('/users/{id}/destroy', 'UsersController@destroy');
    Route::get('/searchuser', 'UsersController@searchuser');
    Route::resource('/users', 'UsersController',['only' => ['index']]);
    Route::patch('/retours/{id}/postupdatefill','RetoursController@postupdatefill');
    Route::get('/retours/{retourid}/addpart/{partid}','RetoursController@addpart');
    Route::get('/retours/{retourid}/remove/{partid}','RetoursController@removepart');
    Route::post('/retours/{retourid}/garantie','RetoursController@postonderdeelgarantie');
    Route::get('/retours/{id}/updatefill/searchpart', 'RetoursController@searchpart');
    Route::get('/searchpart', 'PartsController@searchpart');
    Route::resource('/parts', 'PartsController');

    Route::group(['middleware' => ['auth.superadmin']], function() {
        Route::get('/users/{id}/destroy', 'UsersController@destroy');
        Route::get('/searchuser', 'UsersController@searchuser');
        Route::get('/users/create-worker', 'UsersController@getcreateworker');
        Route::post('/users/post-create-worker', 'UsersController@postcreateworker');
        Route::get('/users/create-agent', 'UsersController@getcreateagent');
        Route::post('/users/post-create-agent', 'UsersController@postcreateagent');
        Route::get('/users-optima', 'UsersController@indexoptima');
        Route::resource('/users', 'UsersController');
        Route::patch('/retours/{id}/postupdatefill','RetoursController@postupdatefill');
        Route::get('/retours/{retourid}/addpart/{partid}','RetoursController@addpart');
        Route::get('/retours/{retourid}/remove/{partid}','RetoursController@removepart');
        Route::post('/retours/{retourid}/garantie','RetoursController@postonderdeelgarantie');
        Route::get('/retours/{id}/updatefill/searchpart',   'RetoursController@searchpart');
        Route::get('/searchpart', 'PartsController@searchpart');
        Route::resource('/parts', 'PartsController');
    });
});
if (auth()->check() && (auth()->user()->level == 1 || auth()->user()->level == 2)) {
  return $next($request);
}
return abort(404, 'no entry to this page');
就您所知,您可以删除外部中间件(
auth:td
),因为两个用户都可以使用它下面的路由。但我没有这样做,因为我认为您的系统中有更多的用户


希望这有帮助

为了您自己的利益,考虑使用
Route::group([“prefix”=>“…])
而不是重复你的
/users/无论什么
路线反复都可以@TimLewis,谢谢。是的,这解决了我的问题。非常感谢你!