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

Symfony PHP Discussion :

embedForm / mergeForm => casse tête chinois


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 534
    Par défaut embedForm / mergeForm => casse tête chinois
    j'essaye de comprendre comment fonctionne ces deux fonctions.
    pour ça j'ai créer deux tables:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    article:
      columns:
        name: string(255)
        description: string(255)
        periode: string(255)
    photo:
      columns:
        name: string(50)
        chemin: string(255)
        article_id: integer
      relations:
        article:
          local: article_id
          foreign: id
    j'ai généré les modules dans mon frontend et je voudrait embarqué (dans un premier temps) un formulaire photo dans mon formulaire article.
    rien de plus simple d'apres la doc, suffit de mettre dans la fonction configure du formulaire de l'article:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    class articleForm extends BasearticleForm
    {
      public function configure()
      {
      	$newPhotoForm = new photoForm();
      	$this->embedForm('photo',$newPhotoForm);
      }
    }
    je vais sur ma page .../article/new et...
    bein j'ai bien les champs de ma table article mais aucun des champs de la table photo.
    que manque t il dans mon code pour que ça marche ?

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    A priori je dirais pour le schéma :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ...
      relations:
        article:
          local: article_id
          foreign: id
          foreignAlias: photos
    Pour le code, essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class articleForm extends BasearticleForm
    {
      public function configure()
      {
      	$newPhotoForm = new photoForm(new photo);
      	$this->embedForm('photo',$newPhotoForm);
      }
    }

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 534
    Par défaut
    comportement étrange.

    Je n'ai toujours pas dans mon form article les champs correspondants au form photo mais par contre j'ai bien une ligne de rajouté dans ma table photo (tout à vide bien sur) quand je crée un nouvel article.

    juste comme ça, il ne faut pas que je rajoute quelque chose dans le template du _form de l'article ????

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Citation Envoyé par erictomcat Voir le message
    juste comme ça, il ne faut pas que je rajoute quelque chose dans le template du _form de l'article ????
    Possible.

    Mais qu'y a-t-il actuellement dans ce template ?

  5. #5
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 534
    Par défaut
    bein ce qui est créé par doctrine, je n'ai touché a rien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    <?php use_stylesheets_for_form($form) ?>
    <?php use_javascripts_for_form($form) ?>
     
    <form action="<?php echo url_for('article/'.($form->getObject()->isNew() ? 'create' : 'update').(!$form->getObject()->isNew() ? '?id='.$form->getObject()->getId() : '')) ?>" method="post" <?php $form->isMultipart() and print 'enctype="multipart/form-data" ' ?>>
    <?php if (!$form->getObject()->isNew()): ?>
    <input type="hidden" name="sf_method" value="put" />
    <?php endif; ?>
      <table>
        <tfoot>
          <tr>
            <td colspan="2">
              <?php echo $form->renderHiddenFields(false) ?>
              &nbsp;<a href="<?php echo url_for('article/index') ?>">Back to list</a>
              <?php if (!$form->getObject()->isNew()): ?>
                &nbsp;<?php echo link_to('Delete', 'article/delete?id='.$form->getObject()->getId(), array('method' => 'delete', 'confirm' => 'Are you sure?')) ?>
              <?php endif; ?>
              <input type="submit" value="Save" />
            </td>
          </tr>
        </tfoot>
        <tbody>
          <?php echo $form->renderGlobalErrors() ?>
          <tr>
            <th><?php echo $form['name']->renderLabel() ?></th>
            <td>
              <?php echo $form['name']->renderError() ?>
              <?php echo $form['name'] ?>
            </td>
          </tr>
          <tr>
            <th><?php echo $form['description']->renderLabel() ?></th>
            <td>
              <?php echo $form['description']->renderError() ?>
              <?php echo $form['description'] ?>
            </td>
          </tr>
          <tr>
            <th><?php echo $form['periode']->renderLabel() ?></th>
            <td>
              <?php echo $form['periode']->renderError() ?>
              <?php echo $form['periode'] ?>
            </td>
          </tr>
        </tbody>
      </table>
    </form>

  6. #6
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Tu as généré en mode verbose, donc effectivement il manque le code pour ton formulaire embed.

    Modifie en mode non verbose.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    <?php use_stylesheets_for_form($form) ?>
    <?php use_javascripts_for_form($form) ?>
     
    <form action="<?php echo url_for('article/'.($form->getObject()->isNew() ? 'create' : 'update').(!$form->getObject()->isNew() ? '?id='.$form->getObject()->getId() : '')) ?>" method="post" <?php $form->isMultipart() and print 'enctype="multipart/form-data" ' ?>>
    <?php if (!$form->getObject()->isNew()): ?>
    <input type="hidden" name="sf_method" value="put" />
    <?php endif; ?>
      <table>
        <tfoot>
          <tr>
            <td colspan="2">
              <?php echo $form->renderHiddenFields(false) ?>
              &nbsp;<a href="<?php echo url_for('article/index') ?>">Back to list</a>
              <?php if (!$form->getObject()->isNew()): ?>
                &nbsp;<?php echo link_to('Delete', 'article/delete?id='.$form->getObject()->getId(), array('method' => 'delete', 'confirm' => 'Are you sure?')) ?>
              <?php endif; ?>
              <input type="submit" value="Save" />
            </td>
          </tr>
        </tfoot>
        <tbody>
          <?php echo $form->renderGlobalErrors() ?>
          <?php echo $form ?>
        </tbody>
      </table>
    </form>

Discussions similaires

  1. Casse tête chinois
    Par mortimer.pw dans le forum SQL
    Réponses: 5
    Dernier message: 26/09/2008, 19h59
  2. SMSLIB casse tête chinois
    Par yashiro dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 02/11/2007, 11h45
  3. Casse tête chinois
    Par Jahjouh dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 15/03/2006, 09h04
  4. Classe, pile, pointeurs et casse-tête!
    Par zazaraignée dans le forum Langage
    Réponses: 6
    Dernier message: 26/09/2005, 16h57
  5. casse-tête excel
    Par gregius dans le forum Access
    Réponses: 2
    Dernier message: 21/09/2005, 16h38

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