Principe de validation du formulaire

Voici quelques compléments d'informations concernant la validation "server side" de fomulaire doit on trouvera la description ici...

La validation des données se fait dans la méthode "save" du controlleur par l'appel de la méthode validate du model.
$validData = $model->validate($form, $data);
(Voir /librairies/src/MVC/Controller/FormController.php vers la ligne 698)

Si vos avez besoin de d'utiliser ce système de validation dans une autre méhode du contrôleur, il faudra donc l'écrire dans votre code.

Dans le model :
public function validate($form, $data, $group = null)
(Voir /librairies/src/MVC/Model/FormModel.php vers la ligne 349)

Cette méthode si elle n'est pas redéfinie dans le model exécute :
$data = $form->filter($data);
$return = $form->validate($data, $group);

C'est donc ici que sera contrôlé par exemple les champ déclarés en
required="true"
dans le xml du formulaire.

Remarque concernant le verrouillage dynamique de champs

Si l'on souhaite verrouiller des champs, selon les droits de l'utilisateur courant par exemple, il faut bien distinguer :
$form->setFieldAttribute('tel_perso', 'disabled', 'true');
et
$form->setFieldAttribute('tel_perso', 'readonly', 'true');
$form->setFieldAttribute('tel_perso', 'class', 'readonly');

Le 1er ne renverra pas de valeur et donc provoquera une erreur si le champ est défini :
required="true"
dans le formulaire.