【问题标题】:Laravel except a single route from auth middlewareLaravel 除了来自 auth 中间件的单一路由
【发布时间】:2018-10-02 15:25:10
【问题描述】:

我有一个受 auth 中间件保护的路由组,并且在这个组内我想除了一个路由。但这条路线也位于另一个路线组中。因此,当我尝试将其移出该组时,它不起作用。

除了 auth 中间件的 UrlProfile 函数,我该如何解决这个问题?.. 我使用的是 Laravel 5.1

Route::group(['middleware' => 'auth'], function () {

    // some other routes ...

    Route::group(['namespace' => 'Lawyer'], function() {
        Route::get('profile/{name}', 'ProfileController@UrlProfile');
    }

};

【问题讨论】:

    标签: laravel laravel-5 routes


    【解决方案1】:

    你可以试试这个吗?

    Route::group(['namespace' => 'Lawyer'], function () {
    
        Route::get('profile/{name}', 'ProfileController@UrlProfile');
    
        Route::group(['middleware' => 'auth'], function() {
    
            ..
            ..
            ..
    
        )};
    
    )};
    

    【讨论】:

    • 我想我可以试试这个是的,但是路线太多,所以我不想碰它们,除了一条路线没有代码吗?
    • 顺便说一句,我还是试过了,所以它可以工作,但是。反正除了单条路线没有解决办法吗?
    • 它在嵌套中工作。如果中间件中不包含路由,只需将其保留在中间件之外。如果还不清楚,请告诉我。如果它有效,请接受它作为答案... :)
    • 移动嵌套组对我来说似乎有点激烈和危险,如果您没有涵盖这一点的自动化测试。
    • 我不认为有办法做到这一点,除了到目前为止
    【解决方案2】:

    如果我正确理解了您的问题,这也应该有效。
    您可以在控制器中添加它。
    您可以在 except 部分中插入函数的名称,它将被排除在中间件之外。 [Reference]

    public function __construct()
        {
            $this->middleware('auth')->except(['yourFunctionName']);
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-22
      • 1970-01-01
      • 2021-11-23
      • 2017-07-04
      • 2021-10-30
      • 2019-06-09
      • 2021-09-09
      相关资源
      最近更新 更多