2011-03-19 9 views
0

J'utilise Zend Framework et je veux vérifier que certains champs ne sont pas soumis comme null ou vides. Où dois-je faire cette vérification? modèle ou contrôleur?MVC où dois-je valider mes données?

Remarque, je ne suis pas en utilisant les formulaires Zend, je les ai codé en HTML et je prends le contenu en utilisant:

$this->_getParam('inputName'); 

Je vais utiliser js pour vérifier à l'avant, mais il est facile de js by-pass donc je veux aussi des trucs backend.

+0

Vous parlez comme si la validation du client était plus importante que la validation côté serveur. DANGER. D'abord vient un ensemble complet de validation côté serveur puis plus de validation côté serveur et plus encore ... alors peut-être pour la commodité de l'utilisateur une validation côté client. – markus

Répondre

0

Je pense que cela dépend vraiment de la façon dont vous concevez votre application. Parfois, il est vraiment important de valider les données dans votre modèle, quand cela dépend de la logique métier, mais si vous voulez juste vérifier si une valeur est nulle ou vide (et remarquez probablement votre utilisateur), faites-le dans votre contrôleur.

Depuis que vous avez écrit votre formulaire manuellement vous pouvez utiliser Zend_Filter_Input qui aidera à valider et filtrer vos entrées.

$filters = array(
    'inputName' => 'StringTrim' 
); 

$validators = array(
    '*' => 'NotEmpty', 
); 

$inputFilter = new Zend_Filter_Input($filters, $validators); 

$inputFilter->setData($this->getRequest()->getPost()); 

if ($inputFilter->isValid()) { 
    echo 'Congratulations!'; 
} else { 
    echo 'Too bad :('; 
} 
0

Si tout ce que vous aimez est si vos chaînes sont non nulle/non-vide, vous pouvez simplement faire:

if ($this->_getParam('inputName')) { 
    echo 'input name is not null or empty'; 
} 

Note: une valeur de 0 ne passera pas cela. Bien que je recommanderais toujours d'utiliser les bibliothèques de validation appropriées.