Validation

Voyager allows you to dynamically add validation rules to all formfields in a view.
To start open the options for a formfield and look for the Validation section.
Click the + button to add a rule and fill in the Rule and the Message which will be displayed when this rule fails. The message field is translatable to display translated error messages to users.

Please check the Laravel documentation for all available validation rules.

Validating multi language inputs

You can validate the current app locale or all locales by setting the option to Validate all locales or Validate current locale in the layout options.
With this you can use Voyager::setLocales([...]) to dynamically set languages for various users.
For example user A speaks english and german, you could run

Voyager::setLocales(['de', 'en']);

in your service provider and select Validate all locales to force the user to enter the data in both his languages.

When Validate current locale is selected, only the current locale is validated. Other entered languages are ignored.

Validating array elements

Validating 1-dimensional arrays

Given then following array:

[
    'name'  => 'admin',
    'email' => 'foo@bar.baz',
]

you can validate any fields by using .name:required or .email:email respectively.
Please notice the leading . which tells Voyager that you want to validate a 1-dimensional array

Multi-dimensional array

Given the following array of users:

[
    [
        'name'  => 'Admin',
        'email' => 'foo@bar.baz',
    ],
    [
        'name'  => 'User',
        'email' => 'e@ma.il',
    ],
]

You can validate any fields in all elements (users in this case) by using *.name:required and *.email:email.
Please notice the leading *. which tells Voyager that you want to validate a multi-dimensional array