Laravel $刀片迷雾中的错误

时间:2018-08-29 08:20:35

标签: php arrays laravel object laravel-blade

有人可以向我解释为什么有时候我不得不使用$errors->all()而不是为什么吗? 努力为错误和对象$ errors找到唯一的解决方案。

// View 1
@if (count($errors) > 0)
    @foreach($errors as $error)
        {{ $error }}<br>
    @endforeach
@endif

// View 2 that sometimes it crashes with:
// "Call to a member function all() on array"
@if (count($errors) > 0)
    @foreach($errors->all() as $error)
        {{ $error }}<br>
    @endforeach
@endif

2 个答案:

答案 0 :(得分:1)

$errors->all(),如果您通过Validator或在Request类中验证数据,则使用。请参阅本文档的part。 Laravel与$errors类共享MessageBag变量。

$errors作为array,使用if在控制器中返回以下内容:

return back()->withErrors([
    'field1' => 'Error in the field 1'
]);

在这种情况下,Laravel与$errors共享array变量

答案 1 :(得分:-1)

我实际上并没有做那么多laravel,但我想您总是可以做这样的事情:

  @if (count($errors) > 0)
    @if(is_array($errors))
      @foreach($errors as $error)
        // code
      @endforeach
    @elseif(is_object($errors))
      @foreach($errors->all() as $error)
        //code
      @endforeach
    @endif
  @endif