【问题标题】:ErrorBag is always empty in Laravel 5.2Laravel 5.2 中的 ErrorBag 始终为空
【发布时间】:2016-07-22 12:07:30
【问题描述】:

我正在创建一个新的 Laravel 项目,在调试表单请求的错误时,我注意到我的 ErrorBag 总是空的。即使在控制器中$validator->fails() 返回true。我尝试了在互联网上找到的所有解决方案,但没有任何效果。

即使在使用 composer 创建新项目时(如 here 所述),我的开箱即用身份验证系统在将所有字段都留空时也会出现空错误包。

是的,所有路由都使用中间件组 web。

任何想法是什么导致了这个问题? (Session::put() 和 Session::get() 正在工作)

【问题讨论】:

  • 显示您的相关代码。
  • @Dees040 您的代码将帮助我们更快地帮助您;)
  • 从8天前发布的5.2.27开始,所有路由默认在web中间件组。如果您在路由文件中明确指定了此组,请尝试将其删除,如果有帮助,请告诉我们。
  • @patricus 干杯,从网络中间件中删除路由就像一个魅力。如果您可以回答您的评论,我会将其标记为已接受的答案。
  • @Dees040 完成。很高兴它成功了!

标签: php laravel laravel-5 laravel-validation


【解决方案1】:

从 2015-03-25 发布的 v5.2.27 开始,app\Http\routes.php 中的所有路由现在默认位于 web 中间件组中。如果您在 app\Http\routes.php 文件中明确指定了此中间件组,则应将其删除,这应该可以解决您的问题。

【讨论】:

    【解决方案2】:

    在我的例子中,我将 \Illuminate\Session\Middleware\StartSession::class 从我的网络组移动到了 $middleware 数组。

    【讨论】:

      【解决方案3】:

      您是否触发了任何表单验证错误?如果你是那么试试这个 -

      $messages = $validator->errors();
      

      messages 变量现在应该有你的错误

      如果你的错误包还是空的

      • 检查您的发布数据是否被发布到正确的路由/控制器

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-07-29
        • 1970-01-01
        • 1970-01-01
        • 2015-12-24
        • 2016-04-02
        • 2016-12-26
        • 2020-02-04
        相关资源
        最近更新 更多