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 :

Probleme avec les EmbeddedForms symfony


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2011
    Messages : 4
    Par défaut Probleme avec les EmbeddedForms symfony
    Hello guys,
    J'utilise des formulaires imbriqués et ça marche nickel mais ce qui est bizarre est qu'à chaque fois que je veux personnaliser le formulaire ou les formulaires l'update ne se fait plus et je sais pas pourquoi peut etre vous aurez une idée la dessus.
    Voici mon schema.yml
    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
     
    Annexe:
      connection: doctrine
      tableName: annexe
      columns:
        id_annexe:
          type: integer(4)
          fixed: false
          unsigned: false
          primary: true
          autoincrement: true
        is_activated:
          type: boolean
          fixed: false
          unsigned: false
          primary: false
          default: 0
          notnull: true
        updated_at:
          type: timestamp(25)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
       created_at:
          type: timestamp(25)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
      relations:
        Board:
          local: id_annexe
          foreign: id_annexe
          type: many
    Board:
      connection: doctrine
      tableName: board
      columns:
        id_annexe:
          type: integer(4)
          fixed: false
          unsigned: false
          primary: true
         autoincrement: false
      id_board:
          type: integer(4)
          fixed: false
          unsigned: false
          primary: true
          autoincrement: false
        updated_at:
          type: timestamp(25)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
       commentaire:
          type: string(1000)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
      relations:
        Annexe:
          local: id_annexe
          foreign: id_annexe
          type: one
       CodeLine:
          local: id_annexe
          foreign: id_annexe
          type: many
       CodeLines:
          class: CodeLine
          local: id_board
          foreign: id_board
          type: many
    CodeLine:
      connection: doctrine
      tableName: code_line
      columns:
        id_annexe:
          type: integer(4)
          fixed: false
          unsigned: false
          primary: true
          autoincrement: false
        id_board:
          type: integer(4)
          fixed: false
          unsigned: false
          primary: true
          autoincrement: false
       id_code_line:
          type: integer(4)
          fixed: false
          unsigned: false
          primary: true
          autoincrement: false
       description:
          type: string(1000)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
       commentaire:
          type: string(1000)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
      relations:
        Board:
          local: id_annexe
          foreign: id_annexe
          type: one
       Board_3:
         class: Board
         local: id_board
         foreign: id_board
         type: one
      TDetails:
         local: id_annexe
         foreign: id_annexe
         type: many
      TDetails_2:
        class: TDetails
        local: id_board
        foreign: id_board
        type: many
      TDetails_3:
        class: TDetails
        local: id_code_line
        foreign: id_code_line
        type: many
    Apres dans BoardForm je fais une imbrication de Codeline
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->embedForm('CodeLines', new CodeLinesForm($this->object))
    et la j'arrive à avoir toutes mes lignes qui composent mon tableau Board. Maintenant si j'utilise echo $form j'ai mon formulaire et je peux faire une mise à jour de mes objets seulement si je decide de personnaliser le formulaire dans _form.php en utilisant le code suivant l'update ne marche plus:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php foreach ($form['codelines'] as $line) : ?>
          <?php echo $line['description']->renderRow(); ?>
            <? endif; ?>
    SVP I REALLY NEED HELP!!!!

  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
    Fichier shema "a ma façon",
    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
    #shema.yml revu (non testé)
    Annexe:
      tableName: annexe
      actAs:
        timestampable: ~ #Génère et gère update et create
      columns:
        #Clef auto crée, elle s'appelle toujours id.
        is_activated:
          type: boolean
          default: false
          notnull: true
     
    Board:
      tableName: board
      actAs:
        timestampable: ~
      columns:
        # id auto-généré
        id_annexe:
          type: integer #id de type integer
          # jamais plus d'une clef dans la primary
       commentaire:
          type: string(1000)
      relations:
        Annexe:
          foreignAlias: Boards
     
    CodeLine:
      connection: doctrine
      columns:
        # id auto-généré
        id_annexe:
          type: integer
        id_board:
          type: integer
       description:
          type: string(1000)
       commentaire:
          type: string(1000)
      relations:
        Board:
          foreignAlias: CodeLines
        # quid d'une relation board3 ??? erreur ???
        # les trois relation TDetails seront à définir sur la table TDetails
        # Une classe est toujours au singulier donc -> TDetail
    Sauf exception exceptionnel, il ne faut TOUJOURS générer les tables depuis symfony et son schéma. L'opération inverse ne doit être utilisé que très exceptionnellement et s'il n'y a vraiment pas possibilité de faire autrement. Elle demande à reprendre le fichier générer pour le rendre viable. La durée de dev est largement augmentée.


    Pour ton code essayes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php foreach ($form['codelines'] as $line) : ?>
          <?php echo $line['description']->renderRow() ?>
    <? endforeach ?>

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2011
    Messages : 4
    Par défaut
    Merci michel pour ta réponse.
    C'est mon premier projet sur symfony ce qui explique un peu les erreurs commises dans mon fichier schema.yml mais j'ai pris en compte tes suggestions.J'ai réussi à faire fonctionner l'update des formulaires imbriqués.
    Maintenant j'ai un autre souci avec l'imbrication.
    J'ai imbriqué TDetailForm dans CodeLineForm et CodeLineForm dans BoardForm que j'utilise dans un module appélé board et BoardForm dans AnnexeForm que j'utilise dans un autre module appelé annexes.
    Au niveau du module board j'ai quelques champs de CodeLineForm:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php foreach ($form['CodeLines'] as $key => $line)
    {
          echo $form['CodeLines'] ['$key'] ['nb_personne']->renderRow(); 
          echo $form['CodeLines'] ['$key'] ['categ_personne']->renderRow();
          echo $form['CodeLines'] ['$key'] ['taux_horaire']->renderRow();
          echo $form['CodeLines'] ['$key'] ['nb_unite']->renderRow();
    }
    Au niveau du module annexes j'ai un autre champs de CodeLineForm qui n'est pas affiché dans le module board
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php foreach ($form['Boards'] as $key => $boarline)
    {
          echo $form['Boards'] ['$key'] ['CodeLines']['description']->renderRow(); 
    }
    Maitenant si je mets à jour ma table codeline à partir du module board il efface le contenu du champs description et meme scenario si je mets a jour la table codeline à partir du module annexes les contenus des autres champs affichés dans board sont effacés.Avez vous (les developpeurs) une idée là dessus???

  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
    Désolé pour le délais.

    Il n'est pas possible de faire des embed dans des embed (au niveau de la gestion par le moteur doctrine du moins).

Discussions similaires

  1. [1.x] probleme avec les commandes de symfony 1.4.2
    Par hermess777 dans le forum Symfony
    Réponses: 8
    Dernier message: 28/10/2011, 15h55
  2. PROBLEME AVEC LES REQUETES IS NULL / NOT EXISTS
    Par sylvaine dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/06/2004, 13h26
  3. Problem avec les *.AVI sur les panels
    Par NaDiA_SoFt dans le forum C++Builder
    Réponses: 3
    Dernier message: 31/08/2003, 22h50
  4. probleme avec les processus
    Par saidi dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 05/02/2003, 00h18

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