Laravel 5.3:在自定义错误页面上使用auth/middleware

man*_*niL 9 php error-handling middleware laravel laravel-5

问题

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

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

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

解决方案不适合

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

相关问题和链接

man*_*niL 1

与我打开的有关github 问题的讨论相一致,以下是两个最佳实践:

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