【问题标题】:Validate arrray name[] input with values Laravel使用值验证数组名称 [] 输入 Laravel
【发布时间】:2021-05-19 17:57:14
【问题描述】:

下午好/晚上好/晚上好

我正在尝试从我的 Laravel 控制器验证一个空名称数组。

在本例中,blade.php 中的代码如下:

<input type="text" name='ambito[]' placeholder='Ambit name' class="form-control @error('ambito[]') is-invalid @enderror"/>

我的控制器有下一个代码:

$validator = Validator::make($request->all(), [
    'ambito' => 'Required|array|min:2',
    'ambito.*' => 'Required|min:3'

]);

我也试过这个:

$data = $request->validate([
     "ambito"  => 'required|array|min:1',
     'ambito.*' => 'required|string'
]);

但我没有从表单中得到错误。我搜索了很多,事实是我看到的选项对我不起作用。

输出到 dd($request['ambito'])

array:3 [▼
  0 => "test1"
  1 => "test2"
  2 => "testasfd"
]

谢谢大家!

【问题讨论】:

  • 看起来所有数组条目的长度> 3。这就是它们通过验证的原因。还是我错过了什么?
  • 这里有什么问题??请求将根据代码通过验证
  • 我有 3 个输入,名称为 ='ambito[]' 我这样做是为了测试,但我仍然没有在表单上收到来自 Laravel 的错误消息。
  • 您想要少于 3 个值吗?在这种情况下,您必须使用 max:2 而不是 min:2
  • 我已经修复了它,下面我把我的错误是什么以及它的解决方案,谢谢大家!

标签: php laravel laravel-8


【解决方案1】:

我已经修好了!问题不在于 Laravel 验证,而是如何在 Blade.php 中返回消息。

<input type="text" name='ambito[]' placeholder='Nom àmbit' class="form-control @error('ambito[]') is-invalid @enderror"/>
@error('ambito[]')
<span class="invalid-feedback d-block" role="alert">
    <strong>{{$message}}</strong>
</span>
@enderror

代码修复:

<input type="text" name='ambito[]' placeholder='Nom àmbit' class="form-control @error('ambito') is-invalid @enderror"/>
@error('ambito')
<span class="invalid-feedback d-block" role="alert">
    <strong>{{$message}}</strong>
</span>
@enderror

问题是@error('ambito[]它不适用于[]

谢谢大家!!!

【讨论】:

    猜你喜欢
    • 2014-11-05
    • 1970-01-01
    • 2023-03-30
    • 2016-12-16
    • 1970-01-01
    • 1970-01-01
    • 2017-11-13
    • 2014-09-20
    相关资源
    最近更新 更多