Bon, le titre n'est pas très clair, alors je m'explique un peu

Voici mon schéma (très 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
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
Abonnements:
  connection: doctrine
  tableName: abonnements
  columns:
    abonnement_id:
      type: integer(4)
      fixed: false
      unsigned: true
      primary: true
      autoincrement: true
    abonnement_commande_id:
      type: integer(4)
      fixed: false
      unsigned: true
      primary: false
      notnull: false      
      autoincrement: false      
    abonnement_creation_date:
      type: timestamp(25)
      fixed: false
      unsigned: false
      primary: false
      notnull: true
      autoincrement: false
    abonnement_last_update:
      type: timestamp(25)
      fixed: false
      unsigned: false
      primary: false
      default: '0000-00-00 00:00:00'
      notnull: true
      autoincrement: false
    abonnement_credit:
      type: integer(4)
      fixed: false
      unsigned: true
      primary: false
      default: '0'
      notnull: true
      autoincrement: false
    abonnement_statut:
      type: enum(9)
      fixed: false
      unsigned: false
      values:
        - PAYEMENT A LA RECEPTION
        - ACCOMPTE
        - PAYE
        - NON PAYE
      primary: false
      default: 'PAYEMENT A LA RECEPTION'
      notnull: true
  relations:
    Commandes:
      local: abonnement_id
      foreign: commande_abonnement_id
      type: many
Commandes:
  connection: doctrine
  tableName: commandes
  columns:
    commande_id:
      type: integer(4)
      fixed: false
      unsigned: false
      primary: true
      autoincrement: true
    commande_date:
      type: timestamp(25)
      fixed: false
      unsigned: false
      default: NOW()
      primary: false
      notnull: true
      autoincrement: false
    commande_abonnement_id:
      type: integer(4)
      fixed: false
      unsigned: true
      primary: false
      notnull: false
      autoincrement: false
  relations:
    Abonnements:
      local: commande_abonnement_id
      foreign: abonnement_id
      type: one
J'ai fais un unset sur les champs non utilisés de mon formulaire abonnement
Dans mon commandeForm j'avais placé ceci:

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
 
$this->embedRelations(array(
  'Abonnement' => array(
  	'considerNewFormEmptyFields'    => array('abonnement_credit', 'abonnement_statut'),
  	'noNewForm'                     => false,
	'newFormLabel'                  => '<br /><i>Abonnement</i>',
    'newFormClassArgs'              => array(array('sf_user' => $this->getOption('sf_user'))),
    'displayEmptyRelations'         => true,
    'formClassArgs'                 => array(array('ah_add_delete_checkbox' => false)),
    'newFormAfterExistingRelations' => true,
    'formFormatter'                 => null,
    'multipleNewForms'              => false,
    'newFormsInitialCount'          => 1,
    'newFormsContainerForm'         => null, // pass BaseForm object here or we will create ahNewRelationsContainerForm
    'newRelationButtonLabel'        => '+',
    'newRelationAddByCloning'       => true,
    'newRelationUseJSFramework'     => 'jQuery',
    'customEmbeddedFormLabelMethod' => 'getLabelTitle',
  )
));
Un abonnement peut être lié à plusieurs commandes.
Dans la table abonnement, j'ai un champ abonnement_commande_id
Ce champ n'est pas vraiment nécessaire dans la relation, il permet simplement de lier l'abonnement à une commande de "référence". J'ai effacé la relation de mon schéma en me demandant si le problème venait de là, mais il semblerait que non

Pour résumer, un abonnement possède une commande de référence et plusieurs commandes peuvent se référer à cet abonnement (en fait, ces commandes seront insérées automatiquement, en prenant pour modèle la commande référencée dans l'abonnement)

J'aimerais pouvoir intégrer le formulaire d'abonnement dans le formulaire de création de commande (un formulaire simple, pas un formulaire de l'admin autogénéré). Et c'est là que ça pose problème, car doctrine ne reconnait pas le lien dans ce sens (je pense).

J'ai déjà fais des formulaire imbriqué (avec ahDoctrineEasyEmbeddedRelationsPlugin) , mais dans l'autre sens, c'est à dire que dans le cas présent il faudrait inclure le formulaire commande dans le formulaire abonnement.... ce qui ne me va pas du tout.

donc je dois faire un formulaire imbriqué dans le sens n ==> 1 à la place de le faire dans le sens 1 ==> n

Auriez vous une idée?

Merci d'avance