J'ai deux tables Emission et Articles qui sont respectivement en relation 1:n avec la table ressources qui est censée recevoir les données des deux premières tables. Ce rassemblement est utile pour d'autres fonctionnalités sur mon site. Voici le schéma.
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
 
emission: 
  columns: 
   membre_id: 
    type: integer
    notnull: true
   titre: 
    type: string(255)
    notnull: true
    unique: true
   sous_titre: 
    type: string(255)
  relations: 
   membre: 
    local: membre_id
    foreign: id
   ressource:
    local: id
    foreign: emission_id
 
memo: 
 columns: 
  membre_id: 
   type: integer
  titre: 
   type: string(255)
   notnull: true
   unique: true
  texte: 
   type: clob
   notnull: true
 relations: 
  membre: 
   local: membre_id
   foreign: id
  ressource:
   local: id
   foreign: memo_id
 
 
ressources:
  columns:
    emission_id:
      type: integer
    memo_id:
      type: integer
    titre:
      type: string(255)
    nature:
      type: enum
      values: ['1','2']
  relations:
    emission:
      local: emission_id
      foreign: id
      foreignType: one
      onDelete: cascade
    memo:
      local: memo_id
      foreign: id
      foreignType: one
      onDelete: cascade
Je voudrais que lorsque j'enregistre une émission ou un article, les données appropriées soit sauvegardées en même temps dans la table ressources. j'ai donc fait un embedForm comme ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
// emissionForm.class.php
 
$res = new Ressources();
$res->setEmission($this->getObject());
$resform = new ressourcesForm($res);
 
$this->embedForm('Ressources', $resform);
Ca enregistre bien dans la table ressource, mais le champ emission_id est a NULL, et quand on édite l'émission, ca ajoute une nouvelle entrée dans la table ressources (avec cette fois la bonne valeur dans emission_id). Alors mes questions:

1) Comment faire pour remplir le champ emission_id de la table ressource lors de la création d'une émission ?

2) Comment éviter la multiplication à chaque édition d'une émission ?

3) Comment sauver la valeur du champ titre du formulaire emission dans le champ titre de la table ressource et unset ce dernier dans le formulaire ressources imbriqué ? Merci.