[Symfony 1.4] SFroute et $_POST

SFroute et $_POST [Symfony 1.4] - PHP - Programmation

Marsh Posté le 07-01-2012 à 13:10:49    

Salut à tous,
 
Voici un problème que je rencontre dans le dev d'une petite appli symfony 1.4.
 
J'ai créer une route qui fonctionne trés bien :  

Code :
  1. sujet:
  2.   url: /sujet/:slug
  3.   class: sfDoctrineRoute
  4.   options: { model: f_sujet, type: object }
  5.   param: { module: main, action: sujet }


 
Dans laquelle je créer un form :  
CF mon action  

Code :
  1. public function executeSujet(sfWebRequest $request)
  2.   {
  3.      
  4.       $this->f_sujet = $this -> getRoute() -> getObject(); 
  5.       $this->f_sujetdb = Doctrine::getTable('f_sujet')->createQuery('s')->where('s.id = ?', $this->f_sujet->getId())->execute();
  6.       $this->f_reponse = Doctrine::getTable('f_message')->createQuery('m')->where('m.sujet_id = ?', $this->f_sujet->getId())->execute();
  7.      
  8.       $this->messageForm = new f_messageForm();
  9. }


Mon f_messageForm est bien configuré comme je le souhaite dans /lib/form/doctrine/f_messageForm.class.php
 
Du coup dans ma vue, mon formulaire s'affiche exactement comme je le souhaite. Et j'en profite pour afficher mon "post" :

Code :
  1. <form action="<?php echo url_for('sujet', array ( 'slug' => $s->slug)) ?>" method="post">
  2. <ul id="rep_rapide">
  3.     <?php echo $messageForm; ?>
  4.     <li><input type="submit" value="Répondre"></li>
  5. </ul>
  6. </form>


 
Mon code html généré est bon, la valeur action de mon post est du coup IDENTIQUE à la page courante:
<form action="/forum/web/frontend_dev.php/sujet/exemple-de-sujet278-1" method="post">
 
Le hic, c'est que lorsque j'envoie les données du formulaire, j'obtient l'erreur suivante :
 

Citation :

1 Info sfPatternRouting Match route "default" (/:module/:action/*) for /sujet/exemple-de-sujet278-1 with parameters array ( 'module' => 'sujet', 'action' => 'exemple-de-sujet278-1',)
2 Info sfFrontWebController Action "sujet/exempledesujet2781" does not exist

3 Error sfError404Exception Action "sujet/exempledesujet2781" does not exist.


 
Si vous avez une idée, n'hésitez pas, parceque là je sèche complet!


---------------
Créer son forum gratuit |  Mon beau blog phpBB caÿ le mal :o
Reply

Marsh Posté le 07-01-2012 à 13:10:49   

Reply

Marsh Posté le 07-01-2012 à 13:41:06    

Le problème est que sfDoctrineRoute n'accepte à la base que le GET.
 
Ta route doit permettre le POST en plus du GET en ajoutant un requirement :
 

Code :
  1. sujet:
  2.   url: /sujet/:slug
  3.   class: sfDoctrineRoute
  4.   options: { model: f_sujet, type: object }
  5.   param: { module: main, action: sujet }
  6.   requirements:
  7.     sf_method: [get, post]


 
Ca devrait répondre à ton problème.
 
Bon courage !


Message édité par Ph3nol le 07-01-2012 à 13:43:06
Reply

Marsh Posté le 07-01-2012 à 13:44:22    

Rha merci!  
Cela fonctionne!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed