在Laravel中基于中间件使用不同的路由名称空间

时间:2018-06-22 09:11:58

标签: laravel laravel-5 laravel-5.6

我的路线/web.php中有以下代码

Route::namespace('Admin')->middleware(['admin'])->group(function() {
    Route::get('/posts', 'PostController@index');
});

Route::namespace('User')->middleware(['user'])->group(function() {
    Route::get('/posts', 'PostController@index');
});

我希望在两种情况下都使用相同的uri“ / posts”,并将角色逻辑(admin,user)保留在控制器之外,但是,在这种情况下,当我请求路由“ / posts”时始终响应与最后一个。

我似乎无法在这里找到我所缺少的信息。

2 个答案:

答案 0 :(得分:0)

admin 用户

使用不同的路由前缀
  

/ admin / posts

Route::group(['namespace' => 'Admin','middleware=>'admin','prefix' => 'admin'],function() {
    Route::get('/posts', 'PostController@index');
});
  

/用户/帖子

Route::group(['namespace' => 'User','middleware=>'user','prefix' => 'user'],function() {
    Route::get('/posts', 'PostController@index');
});

答案 1 :(得分:0)

您可以尝试这个

Route::group(['prefix'=>'admin','middleware'=>'admin'],function (){
        Route::get('/posts',['uses'=>' PostController@posts','as'=>'posts.index']);


});


Route::group(['prefix'=>'user','middleware'=>'user'],function (){
        Route::get('/index',['uses'=>' PostController@posts','as'=>'posts.index']);


});