ako ako - 1 month ago 20
PHP Question

Form validation using Laravel framework

I'm using Laravel 5.2

I have a form contains two fields, one for email address and the other for mobile number, for user to sign up for my site.

Users are required to fill out at least one of these two fields. How can I validate posted data from this form using laravel 5.2 validate method of ValidatesRequests trait in UserController(as all controllers use ValidatesRequests trait in laravel 5.2)?

Here is a sample but it forces user to fill both fields (whereas I'm only requiring them to fill out one of the two fields):

$rules = [
'mobile' => 'required',
'email' => 'required'];
$this->validate($request, $rules);

Answer

Try this as per https://laravel.com/docs/5.2/validation#rule-required-without

$rules = [
    'mobile' => 'required_without:email',
    'email'  => 'required_without:mobile'
];

$this->validate($request, $rules);