使用foreach laravel 5显示错误

时间:2017-06-11 18:08:02

标签: php laravel-5

我正在laracasts,tutorial上关注laravel 5的教程,我在显示尝试验证表单时出现的错误时遇到问题。该程序按预期工作,在提交表单时不会转到下一页,但我想使用 $ errors 变量显示一些反馈。我不想使用自定义消息。

我的问题是,在教程中, $ errors 被视为一个数组,它可以在那里工作,但不能在我的计算机上工作。该变量似乎是object类型。

以下是var_dump时的内容。

object(Illuminate\Support\ViewErrorBag)#163 (1) { ["bags":protected]=> 
array(1) { ["default"]=> object(Illuminate\Support\MessageBag)#164 (2) 
{ ["messages":protected]=> array(2) { ["title"]=> array(1) { [0]=> 
string(28) "The title field is required." } ["body"]=> array(1) { [0]=> 
string(27) "The body field is required." } } ["format":protected]=> 
string(8) ":message" } } }

当我按照教程中所示使用此代码时,它只创建列表中没有任何元素。

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

  </ul>

@endif

现在,我尝试使用

访问元素
$errors->bags["default"]->messages["title"]

但没有任何结果。我也尝试了 $ errors-&gt; all()

$ errors-&gt; all()有效,但问题是我需要使用

清除已编译的视图
php artisan view:clear

2 个答案:

答案 0 :(得分:1)

您是否尝试过$ errors-&gt; all()?在Laravel 5.4文档中,他们使用它:

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

答案 1 :(得分:0)

$ errors-&gt; all()有效,但问题是我需要使用

清除已编译的视图
php artisan view:clear