gpt4 book ai didi

php - Laravel 验证表单数组中的至少一项

转载 作者:可可西里 更新时间:2023-11-01 13:42:27 27 4
gpt4 key购买 nike

我有一个表格,其中包含数组中的一系列数字:

<input type="number" name="items[{{ $sku }}]" min="0" />
<input type="number" name="items[{{ $sku }}]" min="0" />
<input type="number" name="items[{{ $sku }}]" min="0" />

我想验证至少有一个输入字段具有值。

我在我的 OrderCreateRequest 中尝试了以下操作,但测试通过了:

return [
'items' => 'required|array|min:1'
];

我错过了什么吗?

最佳答案

我认为您需要像下面这样的自定义验证规则,因为 min 不适用于数组的元素。

Validator::extend('check_array', function ($attribute, $value, $parameters, $validator) {
return count(array_filter($value, function($var) use ($parameters) { return ( $var && $var >= $parameters[0]); }));
});

您可以创建 ValidatorServiceProvider 并将这些行添加到 ValidatorServiceProvider 的引导方法中。然后你需要在 config/app.php 中添加 Provider 到你的 providers 数组。

App\Providers\ValidatorServiceProvider::class,

或者您只需将它们添加到 Controller 的操作顶部。

最后,您可以在验证规则中像这样使用它。

'items' => 'check_array:1',

注意:如果我理解正确的话,它是有效的。

关于php - Laravel 验证表单数组中的至少一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45758449/

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