【问题标题】:Laravel middleware doesn't workLaravel 中间件不起作用
【发布时间】:2017-07-26 12:34:43
【问题描述】:

我创建了我的中间件,并在 Kernel.php(middlewareGroups 和 routeMiddleware 数组)中注册了它,但它什么也没做。

Kernel.php/middlewareGroups

'CheckAdmin' => [
    \App\Http\Middleware\CheckUserIfAdmin::class,
],

Kernel.php/routeMiddleware

'CheckAdmin' => \App\Http\Middleware\CheckUserIfAdmin::class,

web.php

Route::group(['middleware' => ['CheckAdmin']], function () {
    Route::get('/admin', [
        'uses' => 'AdminController@index',
        'as' => 'adminpage'
    ]);
});

我的中间件:

<?php

namespace App\Http\Middleware;

use Closure;

class CheckUserIfAdmin
{
    public function handle($request, Closure $next)
    {
        if(Session::has('ad_id') === false):
            return redirect()->route('admin.login');
        endif;


        return $next($request);
    }
}

【问题讨论】:

  • 有什么错误吗?
  • @GovindSamrow 不,正如我所说,它什么也没做
  • 什么都不做是什么意思?中间件不是在执行吗?如果您不确定,请尝试将 dd(1); 之类的内容作为 handle() 方法的第一行,以查看该方法是否正在执行。
  • 尝试在中间件中handle方法顶部的dd($request);
  • 我试过 dd($request) 还是没有

标签: php laravel middleware


【解决方案1】:

中间件删除endif;有语法错误:

class CheckUserIfAdmin
{
    public function handle($request, Closure $next)
    {
        if(Session::has('ad_id') === false):
            return redirect()->route('admin.login');

        return $next($request);
    }
}

【讨论】:

  • 仍然没有尝试所有可能的解决方案,但它不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-14
  • 1970-01-01
  • 2018-01-27
  • 2020-03-16
  • 2018-07-21
相关资源
最近更新 更多