Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 07-07-2009 22:26:48

widget
Nouveau membre
Date d'inscription: 07-07-2009
Messages: 2

ZF 1.8 Zend_Form / Zend_Layout

Bonjour,

Je souhaite utiliser un layout afin de gérer un header, content, footer (et autres), j'ai donc suivi les tutos trouvés sur le web (un fichier header.phtml, un fichier footer.phtml, un fichier layout.phtml). Je souhaite intégrer un formulaire (d'anthentification) dans mon header, mais je ne veux pas utiliser un fichier .phtml pour décrire mon formulaire, je veux plutôt utiliser un Zend_Form.

J'ai donc créé ma classe Form_LoginForm qui extend Zend_Form, dans mon header.phtml je fais un

Code:

     <?php echo $this->action('index','login'); ?>

apparemment le lien avec l'action indexAction située dans mon LoginController est bien réalisé

Code:

     public function indexAction()
     {
         $this->view->form = new Form_LoginForm();
     }

mais il me faut créer un fichier scripts/views/login/index.phtml dans  lequel je fais :

Code:

     <?php echo $form; ?>

cela juste pour pouvoir retourner le contenu html de ma forme, sinon j'ai l'erreur suivante dans le log php:

Code:

[07-Jul-2009 22:01:53] PHP Fatal error:  Uncaught exception 'Zend_View_Exception' with message 'script 'login/index.phtml' not found in path (C:\www\htdocs\application\layouts\scripts\;C:\www\htdocs\application\views\scripts\)' in C:\www\library\Zend\View\Abstract.php:925
Stack trace:
#0 C:\www\library\Zend\View\Abstract.php(828): Zend_View_Abstract->_script('login/index.pht...')
#1 C:\www\library\Zend\Controller\Action\Helper\ViewRenderer.php(902): Zend_View_Abstract->render('login/index.pht...')
#2 C:\www\library\Zend\Controller\Action\Helper\ViewRenderer.php(923): Zend_Controller_Action_Helper_ViewRenderer->renderScript('login/index.pht...', NULL)
#3 C:\www\library\Zend\Controller\Action\Helper\ViewRenderer.php(962): Zend_Controller_Action_Helper_ViewRenderer->render()
#4 C:\www\library\Zend\Controller\Action\HelperBroker.php(276): Zend_Controller_Action_Helper_ViewRenderer->postDispatch()
#5 C:\www\library\Zend\Controller\Action.php(522): Zend_Controller_Action_HelperBroker->notifyPostDispatch()
#6 C:\www\library\Zend\Controller\Dispatcher\Stand in C:\www\library\Zend\View\Abstract.php on line 925

ma question est donc la suivante :

est-il possible de se passer de ce fichier index.phtml qui fait juste un echo $form; et comment ?

Ou puis-je trouver de bons tutos basés sur le ZF 1.8 ?

Merci

PS: Je suis newbie de chez newbie ne m'en veuillez pas trop si la question est basique wink

Dernière modification par Mr.MoOx (08-07-2009 09:20:56)

Hors ligne

 

#2 08-07-2009 09:27:55

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: ZF 1.8 Zend_Form / Zend_Layout

Déjà tu nous dit que tu a mis ton fichier dans :
- scripts/views/login/index.phtml
alors que ça devrait être
- views/scripts/login/index.phtml

Ensuite si tu veux désactiver le rendu automatique, il faut désactiver le viewRenderer :

Code:

//dans ton action
$this->_helper->viewRenderer->setNoRender();

Hors ligne

 

#3 08-07-2009 10:18:03

widget
Nouveau membre
Date d'inscription: 07-07-2009
Messages: 2

Re: ZF 1.8 Zend_Form / Zend_Layout

Bonjour,

Merci pour votre réponse

J'ai ajouté le setNoRender mais alors rien ne s'affiche, en fait comme dans l'indexAction j'affecte $this->view->form avec le new Form_FormLogin, il me faut ensuite restituer ce $this->view->form sinon ça ne marche pas.

Ce que je ne comprends pas c'est que dans le header.phtml je fais un echo $this->action(...), si je fais un echo, n'est-ce pas pour afficher la valeur retournée par l'appel à $this->action(...) ? Et si oui alors comment retourner le code html correspondant au new Form_FormLogin() à l'intérieur de la méthode action ?

Vais-je dans le bon sens, ne faut-il pas tout bonnement utiliser systématiquement des scripts de vues ?

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