1

here is my request

{
    "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"
        }
    ]
}

validation rule

'formulations.*.formulation_id' => 'required_with:formulations.*.formulation_custom_name'

working properly for first object i.e formulation_id is required when formulation_custom_name is present

"errors": {
    "formulations.0.formulation_id": [
        "The formulations.0.formulation_id field is required when formulations.0.formulation custom name is present."
    ]
}

now my question is exactly opposite from above scenario i.e validate formulation_custom_name required when formulation_id is null or not present like

'formulations.*.formulation_id' => 'required_without:formulations.*.formulation_custom_name'

but this is not working for this request like this

{
    "formulations": [
        {
            "formulation_id": 6,
            "formulation_custom_name": "test",
            "meal_time_id": null,
            "remark": "demo1"
        }
}

thanks in advance

tushar zore
  • 101
  • 1
  • 8

1 Answers1

0

required_without rule in Validator checks for field existence/presence and not for empty value or null value.

So you need required_if here, and use like below

'formulations.*.formulation_id' => 'required_if:formulations.*.formulation_custom_name,' // it will work for blank and null

Or if you need more complex condition then you can use requiredIf custom Rule

or if you need vice versa then write like below

'formulations.*.formulation_custom_name' => 'required_without:formulations.*.formulation_id'

Document Link

Niklesh Raut
  • 34,013
  • 16
  • 75
  • 109