控制器返回“ false”,而DashboardController返回“ true”

时间:2020-03-02 18:23:07

标签: laravel

我正在运行laravel 6.11

默认情况下,我们有

@font-face {
  font-family: MyFont;
  font-weight: 900;
  src: url("./fonts/ultra-thin.woff2") format("WOFF2");
}

我已经定义了我的控制器,

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()); } } ,而DashboardController返回false

那是为什么?

1 个答案:

答案 0 :(得分:2)

As of Laravel 5.3,您无法在控制器构造函数中访问会话(包括Auth)。但是,您可以在构造函数中定义一个可以访问该会话的中间件闭包。

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

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