ahDoctrineEasyEmbeddedRelations plugin : insertion d'une nouvelle instance
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:
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:
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:
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!