【问题标题】:Access Session Variable in Laravel Custom Error Pages在 Laravel 自定义错误页面中访问会话变量
【发布时间】:2016-10-10 06:19:15
【问题描述】:

我正在尝试在 Laravel 5.3 中创建自定义错误页面。我想检索存储在Session 中的一些变量,例如Session::get("username"),但是我得到的是一个空变量。

我想如何在 Laravel 的自定义错误页面中获取任何 Session 变量,还是不可能?

【问题讨论】:

  • Session::get("username") 用于访问会话变量。但是要交叉检查,打印所有会话值并检查索引是否可用
  • 我使用dd(Session::all()) 将所有Session 变量转储到错误页面中,但它是空的。我可以在非错误页面中很好地访问该变量。我所有的Session 变量都是在登录时设置的。
  • 您在哪个错误页面上尝试了dd(Session::all())
  • @BastienPhilippe 这是一个自定义的 404 错误页面,我想在页面的某个部分打印用户名

标签: php laravel session


【解决方案1】:

由于 Laravel 没有找到路由,你没有通过中间件 \Illuminate\Session\Middleware\StartSession(默认在 web 中间件组中),所以你的会话没有启动。

要初始化会话,请将 \Illuminate\Session\Middleware\StartSession::class,web 移动到 Kernel.php 中的 $middleware

protected $middleware = [
    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
    \Illuminate\Session\Middleware\StartSession::class,
],

$midleware 中的中间件始终运行,因此即使找不到路由,您的会话也会被初始化。

【讨论】:

  • 这成功了!如果在 Laravel 中为每条路由启用 session 有什么缺点吗?
猜你喜欢
  • 1970-01-01
  • 2019-02-16
  • 1970-01-01
  • 1970-01-01
  • 2013-08-16
  • 1970-01-01
  • 2014-11-11
  • 2017-04-22
  • 2018-03-26
相关资源
最近更新 更多