J'ai un problème pour construire un formulaire avec de nombreuses relations entre les tables. La structure des relations que vous pouvez voir sur image ci-dessous: forme de construction pour les tables avec de nombreuses relations
Mes relations dans YML:
######### Products.orm.yml #########
type: entity
table: products
fields:
...
lifecycleCallbacks: { }
oneToMany:
productCombinations:
targetEntity: ProductsCombinations
mappedBy: product
######### ProductsCombinations.orm.yml #########
type: entity
table: products_combinations
fields:
...
lifecycleCallbacks: { }
oneToMany:
productAttributes:
targetEntity: ProductsAttributesJoin
mappedBy: productCombinations
manyToOne:
product:
targetEntity: Products
inversedBy: productCombinations
joinColumn:
name: product_id
referencedColumnName: id
######### ProductsAttributesJoin.orm.yml ########
type: entity
table: null
fields:
combinationID:
type: bigint
column: combination_id
id: true
generator:
strategy: NONE
attributeID:
type: bigint
id: true
generator:
strategy: NONE
column: attribute_id
lifecycleCallbacks: { }
manyToOne:
productCombinations:
targetEntity: ProductsCombinations
inversedBy: productAttributes
joinColumn:
name: combination_id
referencedColumnName: combination_id
attributes:
targetEntity: Attributes
inversedBy: productAttributesJoin
joinColumn:
name: attribute_id
referencedColumnName: id
######### Attributes.orm.yml #########
type: entity
table: products_attributes
fields:
...
lifecycleCallbacks: { }
oneToMany:
productAttributesJoin:
targetEntity: ProductsAttributesJoin
mappedBy: attributes
manyToOne:
productAttributesDefinitions:
targetEntity: AttributesDefinitions
inversedBy: productAttributes
joinColumn:
name: attribute_id
referencedColumnName: id
######### AttributesDefinitions.orm.yml #########
type: entity
table: products_attributes_definitions
fields:
...
lifecycleCallbacks: { }
oneToMany:
productAttributes:
targetEntity: Attributes
mappedBy: productAttributesDefinitions
manyToOne:
productAttributesDefinitions:
targetEntity: AttributesDefinitions
inversedBy: productAttributes
joinColumn:
name: attribute_id
referencedColumnName: id
Ce que j'ai savoir est que:
Ce qui ne fonctionne pas comme quand je vais Cliquez sur Ajouter une nouvelle, puis j'ai une fenêtre contextuelle avec des champs de ProductsCombinations mais quand je les remplirai et que j'appuierai sur Sauvegarder, alors il affichera l'erreur que product_id est null (mais il devrait le prendre dans Products).
aussi ce que je voudrais faire est quelque chose comme ça:
également un peu de code de répertoire Admin:
###### ProductsView.php ######
$formMapper->with('Attributes')
->add('productCombinations', 'sonata_type_collection')
->end()
###### ProductsCombinations.php ######
$formMapper
->with('General')
->(some main fields from productCombinations)
->add('productAttributes', 'sonata_type_collection', array(), array(
'edit' => 'inline',
'inline' => 'table',
'sortable' => 'position'
))
###### ProductsAttributesJoin.php ######
$formMapper
->with('General')
->add('attributes', 'sonata_type_model')
->end()
;