数组数组验证
Array of arrays validation
我正在尝试为以下请求创建验证 - 传递给给定端点的数据需要是一个数组数组,其中每个内部数组包含 line1
和 postcode
以及大小外部数组的是 min:1
。所以,例如:
[
['line1' => 'foo', 'postcode' => 'bar'],
['line1' => 'baz', 'postcode' => 'qux']
]
是我请求的有效数据并且:
[
['line1' => 'foo', 'postcode' => 'bar'],
['line1' => 'baz']
]
不是。
我创建了一个请求验证 class,规则如下:
public function rules()
{
return [
'*.line1' => 'string|required',
'*.postcode' => 'string|required',
];
}
但是我不知道如何添加最低要求。 '*' => 'min:1'
和 '' => 'min:1'
都不起作用(我认为第一个 理论上应该 起作用,但我认为它会检查每个字段的长度是否为 1)
理想情况下,您会添加一个密钥,即
[ 'items' => [
['line1' => 'foo', 'postcode' => 'bar'],
['line1' => 'baz', 'postcode' => 'qux']
]
]
然后使用'items' => 'required|min:1'
.
如果这不可能,您能否在您的请求中添加一个 after()
method(我没有这样做,所以不确定它是否有效):
public function withValidator($validator)
{
$validator->after(function ($validator) {
if (count($validator->getData())<1) {
$validator->errors()->add('input', 'There must be at least one input');
}
});
}
我正在尝试为以下请求创建验证 - 传递给给定端点的数据需要是一个数组数组,其中每个内部数组包含 line1
和 postcode
以及大小外部数组的是 min:1
。所以,例如:
[
['line1' => 'foo', 'postcode' => 'bar'],
['line1' => 'baz', 'postcode' => 'qux']
]
是我请求的有效数据并且:
[
['line1' => 'foo', 'postcode' => 'bar'],
['line1' => 'baz']
]
不是。
我创建了一个请求验证 class,规则如下:
public function rules()
{
return [
'*.line1' => 'string|required',
'*.postcode' => 'string|required',
];
}
但是我不知道如何添加最低要求。 '*' => 'min:1'
和 '' => 'min:1'
都不起作用(我认为第一个 理论上应该 起作用,但我认为它会检查每个字段的长度是否为 1)
理想情况下,您会添加一个密钥,即
[ 'items' => [
['line1' => 'foo', 'postcode' => 'bar'],
['line1' => 'baz', 'postcode' => 'qux']
]
]
然后使用'items' => 'required|min:1'
.
如果这不可能,您能否在您的请求中添加一个 after()
method(我没有这样做,所以不确定它是否有效):
public function withValidator($validator)
{
$validator->after(function ($validator) {
if (count($validator->getData())<1) {
$validator->errors()->add('input', 'There must be at least one input');
}
});
}