Laravel 控制器返回'false',而仪表板控制器返回'true`

Laravel 控制器返回'false',而仪表板控制器返回'true`,laravel,Laravel,我正在运行laravel 6.11 默认情况下,我们有这个 class Controller extends BaseController { use AuthorizesRequests, DispatchesJobs, ValidatesRequests; public function __construct() { dd(Auth::check()); } } 我已经这样定义了我的控制器 class DashboardContr

我正在运行laravel 6.11

默认情况下,我们有这个

class Controller extends BaseController
{
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;

    public function __construct()
    {
        dd(Auth::check());    
    }
}
我已经这样定义了我的控制器

class DashboardController extends Controller
{
    /**
     * Display dashboard
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {       
        dd(Auth::check());
    }
}
现在用户成功登录

并在不同时间访问同一页面、仪表板

控制器返回
false
而仪表板控制器返回
true

这是为什么?

,您无法在控制器构造函数中访问会话(包括身份验证)。但是,您可以在构造函数中定义一个中间件闭包,该闭包将访问会话

class Controller extends BaseController
{
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;

    public function __construct()
    {
        $this->middleware(function ($request, $next) {
            dd(Auth::check());    
        });
    }
}

由于web.php中的define auth,这就是为什么请您的web.phpI添加了my web.php