2010-07-02 3 views
0

J'ai écrit classe de validation. Maintenant, est-ce correct d'étendre une classe de formulaire de la classe de validation? ou même étendre la classe de validation de la classe de demande?validation formulaire en mvc php

Je ne suis pas sûr comment implémenter le processus d'enregistrement pour un nouvel utilisateur dans un mvc. totalement confus.

Edit: j'ai trouvé ce Tut zend ici:

// application/controllers/GuestbookController.php 
    class GuestbookController extends Zend_Controller_Action 

    { 
     // snipping indexAction()... 

     public function signAction() 
     { 
      $request = $this->getRequest(); 
      $form = new Application_Form_Guestbook(); 

      if ($this->getRequest()->isPost()) { 
       if ($form->isValid($request->getPost())) { 
        $comment = new Application_Model_Guestbook($form->getValues()); 
        $mapper = new Application_Model_GuestbookMapper(); 
        $mapper->save($comment); 
        return $this->_helper->redirector('index'); 
       } 
      } 

      $this->view->form = $form; 
     } 
    } 

mais je ne comprends pas comment, en cas d'entrées erronées, vous pouvez revenir à la page du formulaire maintenant avec des champs d'entrée remplis

$this->view->form = $form; 

ceci définit simplement une valeur mais ne redirige pas vers registration.php. alors comment puis-je obtenir à registration.php après cela

if ($form->isValid($request->getPost())) { 
    $comment = new Application_Model_Guestbook($form->getValues()); 
    $mapper = new Application_Model_GuestbookMapper(); 
    $mapper->save($comment); 
    return $this->_helper->redirector('index'); 
} 
else { 
    // ... do redirect to registration.php and fill input fields with set $_POST 
} 

Répondre

0

Je ne l'étendrais pas. Ils ont des "champs d'application" différents (l'un valide les données, et l'autre valide les données) ...

Je suggère soit Dependency Injection si vous voulez forcer la validation, soit simplement l'option de définir un objet de validation si nécessaire. J'ai déjà fait les deux.

Questions connexes