Laravel 5.3:在自定义错误页

时间:2017-01-07 01:53:13

标签: php laravel laravel-5 error-handling middleware

问题

当显示HTTP错误页面(404,500等)时,我想保留当前项目的标准设计,包括页眉和页脚。我的项目还包括一个注册系统。当用户登录并收到错误消息时,他将被重定向到相应的错误页面,但Laravel 无法识别用户已登录。这是因为自定义错误页面(位于resources/views/errors/{code}.blade.php中不会通过正常的Web中间件运行(出于某些原因)。

此行为已经报告了几次,但没有提供足够的答案。 hacky解决方案是设置要在每个请求上应用的StartSession中间件,但在我的情况下这不够。

如何在自定义错误页面上使用Auth / Session中间件?

不适合的解决方案

  • 我不想在每个请求中添加StartSession中间件(或任何其他)

相关问题和链接

1 个答案:

答案 0 :(得分:1)

与我围绕github issue开幕的讨论保持一致,以下是两个最佳做法:

  1. StartSession中间件添加到全局中间件列表是一个很好的实践,只要您的应用程序没有API或类似的
  2. 在第二种情况下,您可以使用jQuery和AJAX调用查询受会话影响的所需前端元素(例如登录/注册或配置文件按钮)。因此,您正在调用应用中间件的路由,从而获得正确的元素。我可以在GitHub问题中找到一个很好的例子。