Bonjour,

Je suis confronté à un problème lié à des formulaires imbriqués.
Après multiples approches, j'ai décidé d'utiliser le plugin ahDoctrineEasyEmbeddedRelations pour faciliter la gestion de ces derniers.

Description de la situation: j'ai un formulaire Resources auquel je veux intégrer un formulaire ResourceDescriptions. Je désire ainsi pouvoir, à la création d'une nouvelle resource, associer à cette ressource, directement, la description fournie par l'utilisateur. Malheureusement, je n'y parviens pas et je ne vois pas ce que je ne fais pas bien dans mon implémentation.

Voici quelques informations de base qui vous permettront, je l'espère, de m'aider.

1) Schéma simplifié:
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
 
ResourceDescriptions:
    connection: doctrine
    tableName: resource_descriptions
    columns:
    id:
      type: integer(4)
      fixed: false
      unsigned: true
      primary: true
      autoincrement: false
    description:
      type: string()
      fixed: false
      unsigned: false
      primary: false
      notnull: true
      autoincrement: false
    lang_id:
      type: string(2)
      fixed: true
      unsigned: false
      primary: true
      autoincrement: false
    desc_type:
      type: integer(1)
      fixed: false
      unsigned: true
      primary: true
      autoincrement: false
    relations:
    Resources:
      local: id
      foreign: id
      type: one
Resources:
    connection: doctrine
    tableName: resources
    columns:
    id:
      type: integer(4)
      fixed: false
      unsigned: true
      primary: true
      autoincrement: false
    relations:
        ResourceDescriptions:
          local: id
          foreign: id
          type: many
2) ResourcesForm

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
$this->embedRelations(array(
                'ResourceDescriptions' => array(
                    'considerNewFormEmptyFields' => array('id', 'description', 'lang_id', 'desc_type'),
                    'newFormLabel' => 'New Description',
                    'displayEmptyRelations' => True,
                    'customEmbeddedFormLabelMethod' => 'Description',
                    'formClassArgs' => array(array('ah_add_delete_checkbox' => true)),
                )
    ));
3) ResourceDescriptionsForm

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
public function configure(){
       /*Aucun changement*/
    }
Alors, pour être plus précis, de deux choses l'une:
a) Je ne comprends pas pourquoi seul le champ description est affiché dans mon formulaire (les champs lang_id et desc_type n'apparaissent pas...)

b) A la soumission du formulaire pour la création d'une nouvelle instance de Resources, le debug m'apprend que l'id pour la description est NULL (SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'id' cannot be null).

Pourriez-vous m'éclairer sur ce problème?

Merci d'avance!