Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 09-10-2008 16:28:58

jahora
Nouveau membre
Date d'inscription: 09-10-2008
Messages: 7

Partager un formulaire entre plusieurs controllers

Bonjour,

Je suis passé sous zend pour réaliser des sites il y a déja quelques semaines et j'ai un mini problème que j'aimerai bien résoudre.
En faite, j'ai envie de partager un formulaire fait avec zend_form sur plusieurs controllers différents.

J'aimerai savoir comment créer une classe sur un fichier modèle et ensuite l appeler dans le contrôleur et faire afficher la vue.
Ou si vous avez une meilleure idée, let me know!

Je ne pense pas que ce soit tres compliqué mais j'ai un peu de mal a trouver la solution.

Merci a vous tous!

Hors ligne

 

#2 10-10-2008 09:36:21

Phil
Membre
Lieu: Lyon
Date d'inscription: 10-10-2008
Messages: 58

Re: Partager un formulaire entre plusieurs controllers

Bonjour, pour partager ton formulaire sur plusieurs controllers c'est simple  il suffit de definir une classe héritant de la classe Zend_Form et en implementant la methode init :

Code:

Class Form_Login extends Zend_Form{
    
    public function init(){
        
        
    //Username
        $username = new Zend_Form_Element_Text('username');
        $username->addValidator(new Zend_Validate_Alpha())
            ->addValidator(new Zend_Validate_StringLength(3,20))
            ->addFilter(new Zend_Filter_StringTrim())
            ->addFilter(new Zend_Filter_StringToLower())
            ->setLabel('Nom d\'utilisateur :')
            ->setRequired();
        $this->addElement($username); ......

Dans ton controller :

Code:

class LoginController extends Zend_Controller_Action{
    
    
    /**
     * Initialize index view
     * 
     */
    public function indexAction(){
        $this->view->form = $this->getForm();
    }
.....
    /**
     * Get Login Form
     *
     * @return Form_Login
     */
    public function getForm(){
        // récupération du formulaire
        
        return $form = new Form_Login(array('action'=>'/login/process',
                                    'method' => 'post'));
        
    }

tu n'as plus qu'a l'appeler dans ta vue

Code:

<? // login/index.phtml ?>
<h2>Identifiez vous</h2>
<?=$this->form?>

Dernière modification par Phil (10-10-2008 15:53:30)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages