How to add conditional validation rules in form requests in Laravel

Categorized as Laravel

Did you know that you can put some conditional validation rules in your Laravel form requests?

class CreateServerRequest extends FormRequest
{
  public function rules() {
    return [
      'version' => [
        'required',
        Rule::in(['20.04','22.04'])
      ],
      'php_version' => [
        'required_if:version,20.04',
        Rule::when($this->input('version') === '20.04', [
          Rule::in(['7.0','7.1','7.2','7.3','7.4','8.0','8.1']),
        ]),
        Rule::when($this->input('version') === '22.04', [
          Rule::in(['8.1']),
        ]),        
      ],
    ];
  }
}

If you use Inertia, you can also switch from your Javascript validation to server-side validation with Form requests. Works like a charm.

Leave a reply

Your email address will not be published. Required fields are marked *