1

I'm trying to input validation on a form where a users full address is not required unless one of the address fields is filled in.

Example: If I fill out the state or city input field I would then be required to fill out the zip code and street address as well.

I tried using Laravel's required_with, required_with_all and required_if but none of them seem to be working. Any tips?

Miheretab Alemu
  • 956
  • 2
  • 20
  • 43
N3rdyB3an
  • 11
  • 1
  • 2

1 Answers1

1

i was having the same problem, but now i figured out how to solve mine, here is the wrong code:

$rules = [
    ...
    /** address optional */
    'address-id' => 'exists:addresses, id', 
    'address-complement' => '', 

    /** address required */
    'address-state-id' => 'required_with:address-id, address-city-id, address-postal_code, address-street, address-number, address-complement, address-district', 
    'address-city-id' => 'required_with:address-id, address-state-id, address-postal_code, address-street, address-number, address-complement, address-district', 
    'address-postal_code' => 'required_with:address-id, address-city-id, address-state-id, address-street, address-number, address-complement, address-district', 
    'address-street'  => 'required_with:address-id, address-city-id, address-postal_code, address-state-id, address-number, address-complement, address-district', 
    'address-number' => 'required_with:address-id, address-city-id, address-postal_code, address-street, address-state-id, address-complement, address-district', 
    'address-district' => 'required_with:address-id, address-city-id, address-postal_code, address-street, address-number, address-complement, address-state-id', 
    ...
];

and here is the correct one:

$rules = [
    ...
    /** address optional */
    'address-id' => 'exists:addresses,id',
    'address-complement' => '',

    /** address required */
    'address-state-id' => 'required_with:address-id,address-city-id,address-postal_code,address-street,address-number,address-complement,address-district',
    'address-city-id' => 'required_with:address-id,address-state-id,address-postal_code,address-street,address-number,address-complement,address-district',
    'address-postal_code' => 'required_with:address-id,address-city-id,address-state-id,address-street,address-number,address-complement,address-district',
    'address-street'  => 'required_with:address-id,address-city-id,address-postal_code,address-state-id,address-number,address-complement,address-district',
    'address-number' => 'required_with:address-id,address-city-id,address-postal_code,address-street,address-state-id,address-complement,address-district',
    'address-district' => 'required_with:address-id,address-city-id,address-postal_code,address-street,address-number,address-complement,address-state-id',
    ...
];

I had to remove the spaces after the comma to make it work.

MadsonJr
  • 73
  • 8