繁体   English   中英

Laravel 5 BaseController for middlewear Auth

[英]Laravel 5 BaseController for middlewear Auth

我注意到在需要用户登录的示例WelcomeController中有:

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

我应该创建一个扩展Controller的BaseController,它包含需要用户登录的所有控制器的上述代码,并从中扩展我的所有控制器吗?

我不建议这样做。 相反,请考虑将中间件应用到您的路线,如下所示:

Route::group(['middleware' => 'auth'], function()
{
    Route::get('/', function()
    {
        // Has Auth Filter
    });

    Route::get('user/profile', function()
    {
        // Has Auth Filter
    });
});

这也是laravel docs btw中分组路线的默认示例。

编辑

提供另一个BaseController是可能的,因为它显然有效。 但想想更复杂的情况,其中中间件可能只需要应用于一些但不是所有控制器方法。

在这些情况下,路由提供了更多的灵活性。

但最重要的是要保持一致。 因此,只需选择适用的内容,但防止自己混淆方法。 这样,您的应用就可以维护。

另一个需要注意的重要事项是,这种方法非常类似于处理此问题的Laravel 4路径( 路由过滤器 )。 因此,如果您选择以这种方式进行,那么从L4切换的人可能在理解那里发生的事情时没有问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM