Nous allons voir dans ce chapitre comment valider les donnée avant de les enregistrer.Il est possible de valider les méthodes de 3 façons différentes.
Facade Validation
Il est possible de valider les données gràce à la façade Validation
. Elle prend en premier paramètre les données et en second les règles de validations.
$validation = Validation::make($request->all(), [
'name' => 'required|min:6'
'email' => 'required|email|unique'
]);
Il est ensuite possible de tester le résultat de cette validation avec différentes méthodes.
if($validator->fails()){
// Pour récupérer les erreurs
$validation->errors();
// Pour récupérer les messages d'erreurs
$validation->messages();
}
Méthode validate()
Il est possible de valider les données à l'aide d'une méthode validate disponible au niveau du controller. Elle fonctionne à peu près comme la façade sauf qu'elle prendra en premier paramètre l'objet request.
$this->validate($request, ['name' => 'required']);
Cette méthode gère l'envois des erreurs dans la session et redirige le visiteur vers la page précédente. Il est donc inutile d'introduire des conditions supplémentaires.
L'objet Request
Enfin il existe une dernière méthode basée sur l'injection. En effet il est possible de créer un objet Request qui contiendra nos règles de validation.
php artisan make:request ArticleSaveRequest
A l'intérieur de cette class on pourra modifier les règles à travers la méthode rules().
public function rules()
{
return [
'name' => 'required|unique|max:255',
'content' => 'required',
];
}
On peut ensuite injecter notre class en utilisant le typage dans la méthode de notre controller.
public function store(ArticleSaveRequest $request)
{
// La requête est ici valide
}
Si jamais la requête n'est pas valide, alors l'utilisateur sera redirigé vers la page précédente avec les erreurs envoyées dans la session.