Embedform, comment réussir
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:
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:
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.