【问题标题】:Display all errors except of selected ones in blade显示除刀片中选定错误之外的所有错误
【发布时间】:2021-02-07 19:23:08
【问题描述】:

当我想在验证后显示刀片中的所有错误时,我使用这段代码。

@foreach ($errors->all() as $error)
     <li>{{ $error }}</li>
@endforeach

但是如果我想显示除少数选定的错误之外的所有错误怎么办。 IE。我想消除来自名为email ($error-&gt;has('email')) 的输入的所有错误。是否有可能在 laravel 中以聪明的方式做到这一点?

【问题讨论】:

    标签: php laravel laravel-blade


    【解决方案1】:

    因为$errors 是一个 Laravel 集合。阅读更多关于集合here

    我们可以试试except()`:

    $erros= $errors->except(['email']);
    

    现在

    $errors->all() 
    

    将返回没有email 的新集合。

    编码愉快。

    【讨论】:

    • 谢谢回复,不过$errors不是laravel收藏,而是MessageBag
    【解决方案2】:

    我认为您可以使用以下代码访问errorBag。

    if ($errors->getBag('default')->has('email'))
    

    我认为您也可以在 foreach 中获取错误键

    @foreach($errors->all() as $key => $error)
        @if($key === 'email')
            @continue
        @endif
        <li>{{ $error }}</li>
    @endforeach
    

    【讨论】:

      【解决方案3】:

      我想出了解决方案。 $errors 是 MessageBag 的一种,我使用了集合中的方法。

      @php
          $errors = collect($errors->getMessages())->except(['email']);
      @endphp
      @foreach ($errors->flatten()->all() as $error)
          <li>{{ $error }}</li>
      @endforeach
      

      【讨论】:

        猜你喜欢
        • 2017-10-12
        • 2019-02-03
        • 1970-01-01
        • 2014-06-01
        • 1970-01-01
        • 2016-09-12
        • 1970-01-01
        • 2020-03-06
        • 2014-12-03
        相关资源
        最近更新 更多