【问题标题】:How to all array inputs in laravel and displaying the validation error below of the fields如何在 laravel 中输入所有数组并在字段下方显示验证错误
【发布时间】:2021-07-17 08:12:16
【问题描述】:

我的目标是当我点击提交按钮时,所有字段都将验证并在每个输入字段下方自动显示验证错误,现在当我尝试提交表单而不向字段中添加任何数据时,只有第一个输入字段在输入字段下方显示错误消息,其他字段只有在我提交表单然后单击输入字段后才会显示该消息。

我试图在这里查看解决方案,但不幸的是它对我不起作用。

我有一个看起来像这样的表单

<div class="form-group">
  <input type="text" name="ref_name[]"> 
</div>
<div class="form-group">
  <input type="text" name="ref_name[]"> 
</div
<div class="form-group">
  <input type="text" name="ref_name[]"> 
</div
<div class="form-group">
  <input type="text" name="ref_name[]"> 
</div
<div class="form-group">
  <input type="text" name="ref_name[]"> 
</div>

这是我的请求类的规则/代码

 'ref_name' => 'array',
 'ref_name.*' => 'required|distinct'

我在我的 laravel 项目中使用这个 https://packagist.org/packages/proengsoft/laravel-jsvalidation 作为我的验证插件。

我正在处理的 laravel 版本项目是 5.2

【问题讨论】:

  • 第一件事是你不能对输入字段使用相同的“名称”属性。

标签: php arrays forms validation laravel-5


【解决方案1】:

获取输入数组的第一个验证错误:

{{ $errors->first('ref_name.*') }}

检查输入数组是否有错误:

@if($errors->has('ref_name.*'))
<h1>There is an error in your input array</h1>
<ul>
   @foreach($errors->get('ref_name.*') as $errors)
       @foreach($errors as $error)
           <li>{{ $error }}</li>
       @endforeach
   @endforeach
</ul>
@endif

其他例子:

@error('ref_name.*')
<div class="alert alert-danger">{{ $message }}</div>
@enderror

你也可以得到错误:

echo $errors->first('ref_name.0');

【讨论】:

  • 很抱歉,这些都不适合我,我使用的验证插件是packagist.org/packages/proengsoft/laravel-jsvalidation 表单验证时不需要刷新页面。如果我提交表单,它将自动验证表单并在输入字段下方显示所有错误,而无需刷新页面。
  • echo $errors->first('ref_name.0');试试这个我希望这对你有帮助@darth-dev-vader
猜你喜欢
  • 1970-01-01
  • 2020-02-10
  • 1970-01-01
  • 1970-01-01
  • 2015-04-04
  • 2016-07-22
  • 1970-01-01
  • 1970-01-01
  • 2020-03-06
相关资源
最近更新 更多