我的要求是
{
"formulations": [
{
"formulation_id": null,
"formulation_custom_name": "test",
"meal_time_id": null,
"remark": "demo1"
},
{
"formulation_id": 3,
"formulation_custom_name": "asd",
"meal_time_id": 2,
"remark": "demo"
}
]
}
验证规则
'formulations.*.formulation_id' => 'required_with:formulations.*.formulation_custom_name'
第一个对象的工作正常,即当配方_custom_name存在时,需要配方_id。
"errors": {
"formulations.0.formulation_id": [
"The formulations.0.formulation_id field is required when formulations.0.formulation custom name is present."
]
}
现在我的问题与上面的情况完全相反,即当formulation_id为空或不存在时,需要validateformulation_custom_name,如
'formulations.*.formulation_id' => 'required_without:formulations.*.formulation_custom_name'
但这是 不灵 对于这个要求,像这样
{
"formulations": [
{
"formulation_id": 6,
"formulation_custom_name": "test",
"meal_time_id": null,
"remark": "demo1"
}
}
先谢谢
required_without
验证器中的规则检查字段是否存在,而不是检查字段是否存在。empty
价值或 null
值。
所以你需要 required_if
在这里,并使用类似下面的
'formulations.*.formulation_id' => 'required_if:formulations.*.formulation_custom_name,' // it will work for blank and null
或者如果你需要更复杂的条件,那么你可以使用 requiredIf
自定义规则
或者如果你需要反过来写,那么就像下面这样写
'formulations.*.formulation_custom_name' => 'required_without:formulations.*.formulation_id'