IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 PHP Discussion :

Le save de mon form pointe vers le mauvais module [1.x]


Sujet :

PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 74
    Par défaut Le save de mon form pointe vers le mauvais module
    Bonjour,

    Je viens d'installer symfony et de créer une application.
    A peu de chose près, j'ai simplement généré deux modules Contact et Comment avec donc deux formulaires associés.

    Je cherche à afficher dans le show de mon Contact, le formulaire de comment.

    Dans mon action show de Contact, j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public function executeShow(sfWebRequest $request)
      {
        $this->formComment = new commentForm();
     
      	$this->contact = Doctrine_Core::getTable('contact')->find(array($request->getParameter('id')));
        $this->forward404Unless($this->contact);
      }
    Dans mon template:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php include_partial('form', array('form' => $formComment)) ?>
     
    <table>
      <tbody>
        <tr>
          <th>Id:</th>
          <td><?php echo $contact->getId() ?></td>
        </tr>
    etc.
    Pourquoi le formulaire de Comment généré pointe vers contact? Le code généré est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <form action="/frontend_dev.php/contacts/create" method="post" >
      <table>
        <tfoot>
          <tr>
            <td colspan="2">
              &nbsp;<a href="/frontend_dev.php/contacts">Back to list</a>
                        <input type="submit" value="Save" />
    Merci d'avance,
    Laurent.

  2. #2
    Membre émérite Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par défaut
    Le formulaire CommentForm pointe vers 'contact' parce que tu l'as placé dans le module 'contact'.

    Je pense que dans ton partial, tu dois pouvoir forcer la valeur du champ 'method' en appelant $form->renderFormTag() ou $form->render() et en renseignant $attributes.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 74
    Par défaut
    Merci pour la réponse mais je ne suis pas sûr de bien comprendre.

    Dans mon partial j'ai ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action="<?php echo url_for('comments/'.($form->getObject()->isNew() ? 'create' : 'update').(!$form->getObject()->isNew() ? '?id='.$form->getObject()->getId() : '')) ?>" method="post" <?php $form->isMultipart() and print 'enctype="multipart/form-data" ' ?>>
    Et je dois marquer qlqchose comme ça?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action="<?php echo $form->renderFormTag(url_for('comments/'.($form->getObject()->isNew() ? 'create' : 'update').(!$form->getObject()->isNew() ? '?id='.$form->getObject()->getId() : '')),array('method'=>???)) ?>" method="post" <?php $form->isMultipart() and print 'enctype="multipart/form-data" ' ?>>
    Sinon existe-t-il une autre façon de procéder? j'ai l'impression que je me trompe de méthodologie, non?

    Je cherche à afficher dans une même page:
    • un résultat de formulaire Contact (ok)
    • un résultat de formulaire Comment (ok)
    • un formulaire Comment en mode insertion (ko)

  4. #4
    Membre émérite Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par défaut
    Heu non, c'est moi qui ai mal compris ton problème.

    renderFormTag() renvoie l'ensemble de la balise <form>. Le code de ton partial semble correct mais je ne vois pas comment url_for('comments/create') pourrait donner comme url finale '/frontend_dev.php/contacts/create'. Tu es sûr qu'on passe sur cette ligne ? Quelques points d'arrêts avec xdebug ou quelques traces de log devraient aider à y voir plus clair, c'est forcément un éléphant.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 74
    Par défaut
    J'ai trouvé.
    Il fallait mettre le chemin vers le module car mes 2 modules avait 2 partial de même nom. Etrange tout de même comme comportement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include_partial('comments/form', array('form' => $formComment))

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/05/2014, 10h45
  2. Réponses: 6
    Dernier message: 14/04/2014, 17h43
  3. Noms de domaine inconnu qui pointe vers mon site
    Par Alex-L dans le forum Serveurs (Apache, IIS,...)
    Réponses: 1
    Dernier message: 17/03/2012, 09h25
  4. Réponses: 3
    Dernier message: 04/07/2011, 10h59
  5. Réponses: 11
    Dernier message: 24/07/2003, 09h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo