Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Plop
J'ai un problème que je n'avais encore jamais rencontré lors de l'envoi d'un formulaire.
Je l'instancie dans le controlleur pour ensuite le passer à la vue et initialiser son attribut action :
[lang=php] $addcoutform->setAttribute('action', $this->url('liste', array('action' => 'addcout', 'id' => $this->id)));
Dans mon controlleur, j'ai bien une action 'addcoutAction' :
[lang=php] public function addcoutAction(){ }
Qui traite les données reçues en POST, les sauvegarde dans la bd et me redirige sur la page du formulaire (pas sur la vue addcout).
J'ai déjà fait des dizaines de formulaires avec ce fonctionnement ( action sans vue associée, qui redirige simplement vers une autre vue quand elle est terminée), et ça a toujours bien fonctionné, mais là, au moment du submit j'ai ça :
Zend\View\Renderer\PhpRenderer::render: Unable to render template "liste/liste/addcout"; resolver could not resolve to a file
Si je crée la vue 'addcout.phtml' vide, plus de message d'erreur, mais le controlleur ne lance pas l'action addcoutAction ( je reste sur cette page blanche, aucune redirection et aucun traitement ne sont effectués )
Si quelqu'un pouvait éclairer ma lanterne, merci
Hors ligne
Bonjour,
Quel code as-tu dans ton addcoutAction ?
Honnêtement une connerie que je faisais souvent au début de ZF2 c'est que je ne mettais pas return devant $this->redirect()->toRoute(), car ZF1 n'avais pas besoin du return...
Hors ligne
Bonjour
Elle ressemble à ça :
[lang=php] public function addcoutAction(){ $idsite = $this->params('id', 0); $form = new coutForm(); $request = $this->getRequest(); if ($request->isPost()) { $cout = new Cout(); $form->setInputFilter($cout->getInputFilter()); $form->setData($request->getPost()); if ($form->isValid()) { $cout->exchangeArray($form->getData()); $this->getCoutTable()->saveAddedCout($cout); return $this->redirect()->toRoute('liste'); } } }
Je ne me sers pas encore du param que je récupère depuis la route, mais les données reçues en post devraient suffire pour mon test.
Edit :
Autant pour moi, en sortant le return du if, ça fonctionne ( du moins la redirection ), c'est donc que mon form n'est pas valid ou que ma requête n'est pas en post, je penche pour le isValid
Merci !
Dernière modification par astro785 (28-04-2014 10:21:17)
Hors ligne
Hello,
d'après ton erreur il semblerait que ton appli ne trouve pas le fichier de view : liste/liste/addcout
vérifie qu'il est au bon endroit, ou qu'il à bien le même nom ^^
EDIT : att je n'avais pas bien lu. si tu créé le fichier vide il marche? tu met quoi dans ta vue?
Dernière modification par flobrflo (28-04-2014 10:33:07)
Hors ligne
Dur le lundi flobrflo
L'idée ici c'était justement de ne pas utiliser de vue, juste une redirection !
astro785, hors de ton if, tu devrais utiliser le plugin forward pour pouvoir afficher un message d'erreur si le formulaire n'est pas valide... http://framework.zend.com/manual/2.3/en … ns-forward
Hors ligne
Ah we j'avais rien pigé du tout.. xD
(dsl post inutile du coup..)
En créant ta vue blanche commence déjà par debug pour voir ou ça plante, (var_dump dans le if et un juste avant le redirect pour voir jusqu'où tu va)
Hors ligne
Pages: 1