Laravel分组路由什么是最好的前缀或中间件

时间:2017-12-27 14:50:51

标签: laravel routing laravel-routing laravel-middleware

当我开始考虑分组我的路线并查看文档时。我输了。有很多东西,如前缀,中间件等。

分组路线的最佳方法是什么?

Route::group(['middleware' => 'admin'], function () {});

Route::group(['prefix' => 'admin'], function () {});

Route::group(['namespace' => 'admin'], function () {})

哪种方法最好?为什么?何时使用什么方法?

2 个答案:

答案 0 :(得分:3)

等待。前缀和中间件是两个不同的东西

prefix是一种为您的路线添加前缀并避免不必要的输入的方法,例如:

Route::get('post/all','Controller@post');
Route::get('post/user','Controller@post');

可以使用前缀post

对此进行分组
Route::group(['prefix' => 'post'], function(){
    Route::get('all','Controller@post');
    Route::get('user','Controller@post');
})

另一方面,中间件:

  

中间件提供了一种方便的机制,用于过滤进入应用程序的HTTP请求。例如,Laravel包含一个中间件,用于验证应用程序的用户是否经过身份验证。如果用户未经过身份验证,则中间件会将用户重定向到登录屏幕。但是,如果用户通过身份验证,则中间件将允许请求继续进入应用程序。

例如,现在使用最后一个示例,我希望用户在我的帖子路由中进行身份验证。我可以像这样在这个组中应用中间件:

Route::group(['prefix' => 'post', 'middleware' => ['auth']], function(){
        Route::get('all','Controller@post');
        Route::get('user','Controller@post');
    })

您应该查看文档以获得更多信息。

https://laravel.com/docs/5.5/middleware

https://laravel.com/docs/5.5/routing#route-groups

答案 1 :(得分:2)

两者有所不同,但要同时使用两者分组路由中间件和为路由添加前缀的最佳技术应避免不必要的输入

Route::group(['prefix' => 'admin','middleware' => ['auth:admin']], function() {
    Route::get('dashboard','AdminController@dashboard');
});