【问题标题】:ErrorException when using $errors in view in Laravel 5在 Laravel 5 中使用 $errors 时出现 ErrorException
【发布时间】:2016-04-09 00:24:09
【问题描述】:

我的视图中有以下代码

@if ($errors->any())
    <ul class="alert alert-danger">
    @foreach ($errors->all() as $error)
        <li>{{ $error }}</li>
    @endforeach
    </ul>
@endif

我希望我的视图可以使用 $errors,所以我想显示它们

但是,这个块会抛出以下异常:

958ab466b0f563093a9e18c3ff070466cc69459a.php 行中的 ErrorException 38:未定义变量:错误(查看:.....filename.blade.php

【问题讨论】:

  • 您确定变量 $errors 在视图中每次都可用,而不是在错误的情况下?我认为您应该检查是否设置了错误变量

标签: php laravel laravel-5 laravel-5.2


【解决方案1】:

对于 Laravel 5.2,请确保将您的路由放在 web 中间件组中,如下所示:

Route::group(['middleware' => ['web']], function () {
    // Add your routes here
});

我在这里写了一个更深入的解释为什么会这样:Laravel 5.2 validation errors

简而言之,Laravel 5.0 和 5.1 曾经自动运行多个中间件。其中一个中间件 (\Illuminate\View\Middleware\ShareErrorsFromSession) 用于将 $errors 变量自动注入到您的所有视图中。 Laravel 5.2 现在使这一切成为可选的,但您只需将路由放在 web 中间件组中即可达到相同的效果。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-17
  • 1970-01-01
  • 2015-07-05
  • 2016-01-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多