J'utilise Kohana, mais je pense que cette question est plus générale.Où devrait se produire la validation de forme dans un projet MVC?
J'ai fait la validation de forme dans le contrôleur, et cela a bien fonctionné jusqu'ici. Mais dernièrement, j'ai rencontré un problème.
J'ai un modèle de commentaires, et j'envoie des commentaires de quelques contrôleurs différents. Au lieu d'avoir un validateur dans chaque contrôleur, je l'ai placé dans le modèle.
Ce qui est grand parce que
- Un seul endroit pour changer/ajouter des règles de validation (SEC)
Ce suce parce
- J'ai besoin évidemment de retourner un succès ou l'échec au contrôleur, et la bibliothèque de validation de Kohana renvoie les erreurs sous la forme d'un tableau. Donc, mon retour ressemble à ceci
SUR LE SUCCÈS
array('success' => true);
SUR FAIL
array('success' => false, $errors);
Je ne peux pas empêcher de penser que cela est faux. Il se sent faux.
Si je le fais dans le contrôleur, je peux simplement faire
if ($post->validate()) {
doWhatever();
} else {
$this->template->formErrors = $post->errors('form_errors');
}
Ce qui semble mieux (pour moi).
Y a-t-il une meilleure façon de procéder? Devrais-je valider dans le contrôleur ou la méthode? Est-ce que je deviens fou?
C'est comme ça que je le fais et ensuite je vérifie l'indice de succès pour décider quoi faire (pas avec Kohona, mais généralement.) –