Problème de save() récursif
Bonjour,
Comme le titre l'indique, j'ai un petit problème d'enregistrement récursif. Je créer un arbre d'objet et le niveau le plus bas n'est pas persisté...
Pour que ce soit simple à comprendre voici un petit schéma de class simplifié :
http://img37.imageshack.us/img37/2375/31460613.png
Voici le schema.yml :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
CartoMap: {}
CartoEquipment:
columns:
carto_map_id: {type: integer}
name: {type: string(255), notnull: true}
relations:
CartoMap: {onDelete: CASCADE, onUpdate: CASCADE, foreignAlias: cartoEquipmentList}
CartoBeam:
columns:
equipment_a: {type: integer, notnull: true}
equipment_b: {type: integer}
load_value: {type: integer}
real_b_number: {type: string(255)}
relations:
equipment_a: {class: CartoEquipment, local: equipment_a, onDelete: CASCADE, onUpdate: CASCADE, foreignAlias: cartoBeamList}
equipment_b: {class: CartoEquipment, local: equipment_b, onDelete: CASCADE, onUpdate: CASCADE, foreignAlias: cartoInsideBeamList} |
Et voici le code d'exemple :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
$map = new CartoMap();
$beam = new CartoBeam();
$a = new CartoEquipment();
$b = new CartoEquipment();
$a->setName('a');
$b->setName('b');
$beam->setEquipmentB($b);
$a->getCartoBeamList()->add($beam);
$map->getCartoEquipmentList()->add($a);
$map->save(); |
L'objet Map s'enregistre sans problème, tout comme l'objet Equipment $a. Par contre l'objet Equipment $b n'est pas sauvegardé et donc l'objet Beam est sauvegardé sans référence à l'objet Equipment $b.
Avez vous une idée pour résoudre ce problème ?
Merci d'avance.
EDIT :
Plus de problème, j'avais une erreur dans mon schema (doublon du nom des champs et des relations de l'objet CartoBeam) :aie: