gpt4 book ai didi

通配符 (*) 点表示法的 Laravel 自定义验证消息

转载 作者:行者123 更新时间:2023-12-02 00:16:42 26 4
gpt4 key购买 nike

当为具有相同数组名称的表单元素定义验证时,我们使用通配符 (*) 点符号

假设您有一个如图所示的表单:

<input type="text" name="client_type[]" class="form-control" value="Panelist" readonly>
<input type="number" name="commission_percentage[]" class="form-control">

<input type="text" name="client_type[]" class="form-control" value="Non Panelist" readonly>
<input type="number" name="commission_percentage[]" class="form-control">

为了验证 commission_percentage 字段,我们将在表单请求类中执行此操作:

public function rules()
{
$rules = [];

$rules['commission_percentage.*'] = 'required';

return $rules;
}

从上面的表单中,当它为空时提交会生成以下验证错误消息:

The commission_percentage.0 field is required. 
The commission_percentage.1 field is required

验证错误消息将重复两次,因为表单中的 commission_percentage 数组有 2 个值。现在想象一下数组有多个值的情况,每次都会重复验证错误消息!

所以问题是:是否有解决此问题的方法,而不是将验证错误消息重复 n 次,我们有一个验证错误消息将被输出并代表所有同一个数组中的项目?

谢谢。

最佳答案

我认为您可以覆盖表单请求中的消息方法并添加一条消息,例如:

public function messages()
{
return [
'commission_percentage.*' => 'Your field is required'
];
}

然后要在 View 中使用它,您应该将它从 $errors->any() 循环中排除,但要将它作为单个错误获取,如下所示:

@if ($errors->has('commission_percentage.*'))
<div class="help-block">
<ul role="alert">
<li>{{ $errors->first('commission_percentage.*') }}</li>
</ul>
</div>
@endif

关于通配符 (*) 点表示法的 Laravel 自定义验证消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56818469/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com