Laravel中间件/路由组

时间:2016-08-03 13:38:19

标签: php laravel laravel-5.2 laravel-routing laravel-middleware

我对Laravel相当新,所以这个问题对某些人来说可能是显而易见的。

在每个HTTP请求运行检查的情况下,例如用户身份验证。是否有更好,更有效或更简单的正确方法来运行这些检查。从我最初的研究看来,这可以使用MiddleWare,例如

来完成
- (UIEdgeInsets)widgetMarginInsetsForProposedMarginInsets:(UIEdgeInsets)defaultMarginInsets {
UIEdgeInsets edgeInsets = UIEdgeInsetsMake(0, 44, 0, 0);
return edgeInsets;}

似乎也可以使用路由组,例如

public function __construct()
{
    $this->middleware('auth');
}

这两种方式中的任何一种都有什么好处吗?除了不必在每个控制器中放置Route::group(['middleware' => 'auth'], function () { Route::get('/', function () { // Uses Auth Middleware }); Route::get('user/profile', function () { // Uses Auth Middleware }); }); 的明显好处之外,还需要检查auth。

由于

编辑..

在接受你的建议之后,我尝试使用路由分组来控制我的Auth MiddleWare。但这似乎打破了我的网站。

$this->middleware('auth');

我错过了一些明显的东西吗?

3 个答案:

答案 0 :(得分:1)

没有真正的区别,我个人使用组标准中间件并在构造中添加异常

答案 1 :(得分:1)

建议的选项对我不起作用,但是当我查看 laravel 文档时,我发现了这一点:

Route::middleware(['web'])->group(function () {
    //Your routes here
});

它对我有用。 Laravel 8.*

答案 2 :(得分:0)

使用Route组很容易进行维护/修改,否则你必须记住每个使用某些中间件的控制器,当然这不是一个小型中型应用程序的问题,但这很难在大型应用程序,其中有许多控制器和对中间件的引用。