Laravel 5.2 中的 ErrorBag 始终为空

ErrorBag is always empty in Laravel 5.2

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

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

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

知道是什么导致了这个问题吗? (Session::put() 和 Session::get() 正在工作)

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

$messages = $validator->errors();

The messages variable should now have your errors

如果你报错包还是空的

  • 检查您的 post 数据是否 post 编辑到正确的 route/controller

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

就我而言,我将 \Illuminate\Session\Middleware\StartSession::class 从我的网络组移至 $middleware 数组。