Laravel 验证数组必须有一个具有特定值的元素
Laravel Valiadtion array must have one element with a certain value
具有以下表单请求验证输入的图像。
[
'relations' =>
[
[
'primary' => true,
],
[
'primary' => false,
],
],
],
是否有任何验证可以确保至少一个关系模型的主要设置为真?如果它可以确保只有一个元素是真实的,那就更完美了。这个问题好像以前就存在过。
所以如果我们只看到关系的输入,这应该通过。
[
'primary' => true,
],
[
'primary' => false,
],
验证失败。
[
'primary' => false,
],
[
'primary' => false,
],
public function rules()
{
return [
'relations' => function ($attribute, $relations, $fail) {
$hasPrimary = collect($relations)
->filter(function ($el) {
return $el['primary'];
})
->isNotEmpty();
if ( ! $hasPrimary)
{
$fail($attribute . ' need to have at least one element set as primary.');
}
},
// the rest of your validation rules..
];
}
当然,您可以将其提取到 dedicated Rule object,但您明白了。
具有以下表单请求验证输入的图像。
[
'relations' =>
[
[
'primary' => true,
],
[
'primary' => false,
],
],
],
是否有任何验证可以确保至少一个关系模型的主要设置为真?如果它可以确保只有一个元素是真实的,那就更完美了。这个问题好像以前就存在过。
所以如果我们只看到关系的输入,这应该通过。
[
'primary' => true,
],
[
'primary' => false,
],
验证失败。
[
'primary' => false,
],
[
'primary' => false,
],
public function rules()
{
return [
'relations' => function ($attribute, $relations, $fail) {
$hasPrimary = collect($relations)
->filter(function ($el) {
return $el['primary'];
})
->isNotEmpty();
if ( ! $hasPrimary)
{
$fail($attribute . ' need to have at least one element set as primary.');
}
},
// the rest of your validation rules..
];
}
当然,您可以将其提取到 dedicated Rule object,但您明白了。