|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre chevronné
![]() Développeur Web Inscription : mars 2005 Messages : 769 ![]() |
Bonjour à tous,
soit le modèle suivant :
Code :
Fort de ce constat, je cherche à embarquer ce formulaire dans le formulaire de gestion du Panier. Je fais donc le embedRelation('Items') requis dans le configure() du CartForm. Je génère mon module Cart avec Doctrine, je vais en édition sur l'un des paniers enregistrés, je vois bien mes sous-formulaires CartItem. Si je modifie uniquement quantity, width ou height sur l'un des CartItems de mon panier et que j'enregistre, tout va bien. Par contre, si je modifie la liste de confections d'un CartItem, cette modification n'est pas sauvegardée (les autres le sont toujours, elles). C'est contrariant |
||
|
|
00
|
|
|
#2 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Ton shéma n'est pas viable ainsi, il manque des tables.
Il y a à priori deux relations n-n, mais les relations ne sont pas correctement déclarées CartItemConfection semble être utilisée comme table pivot, mais la clef primaire ne prends pas les clefs externes en compte, ce qui est sujet à problèmes. De plus, il semblerait que CartItem soit vue comme une table de liaison n-n entre produc et"je ne sais pas trop quoi", mais sans aucune clefs primaires ni liaisons. Ce qui me donne l'impression que tu chaines deux tables de liaison ensemble. Il faudrait consolider ton shéma avant de tenter quoi que cela soit d'autre. L'actuel me semble voué à l'échec.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#3 |
|
Membre chevronné
![]() Développeur Web Inscription : mars 2005 Messages : 769 ![]() |
Non, les colonnes qui te manquent y sont, j'ai juste élagué (un peu brutalement, soit, et incomplètement, j'aurais pu virer aussi la relation vers Product). Le schéma complet possède en effet un enchainement de tables n-n : CartItem fait une liaison n-n entre Cart et Product, CartItemConfection fait une liaison n-n entre CartItem et Confection. Mais Product ne nous intéresse pas ici, on peut l'ignorer. Le problème se manifeste dans la chaine Cart - CartItem - CartItemConfection - Confection, les formulaires en jeu sont ceux de Cart (formulaire principal) et CartItem (enchâssé dans CartForm)
Quelques recherches sur la Toile m'ont permis de confirmer que je ne suis pas le seul à avoir eu ce problème, on devrait pouvoir le reproduire facilement avec n'importe quel groupe de 3 tables liées pareillement : table A (Cart) et table B (CartItem) en relation 1-n, table B et table C (Confection) en relation n_n. |
|
|
00
|
|
|
#4 | ||||
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Ceci n'est pas conforme à la structure d'une table de liaison n-n.
Code :
Code :
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
||||
|
00
|
|
|
#5 |
|
Membre chevronné
![]() Développeur Web Inscription : mars 2005 Messages : 769 ![]() |
Non non, toutes ces colonnes y sont. Je comptais simplifier la discussion et gagner du temps en élaguant le schéma pour n'y montrer que le strict minimum mais il semble que ma tentative maladroite s'achève en "epic failure"
![]() J'ai provisoirement contourné le problème en collant des appels Ajax sur mon formulaire pour mettre à jour la table concernée. Dès que j'ai le temps, je construis un modèle et un programme de test simplifié (mais complet |
|
|
00
|
|
|
#6 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Ma remarque sur les tables manquantes n'était que cosmétique. Destinée à essayer de comprendre une structure complexe de pas ces besoins.
Par contre, ma remarque sur la structure de la table pivot : CartItemConfection est elle conceptuel. En effet, une table pivot (sauf rares exceptions) doit avoir ces champs, ces arguments et ces relations. Je te laisse revoir pour la question de base, et revenir par après. Mais je reste curieux sur ce que peut bien être le champ : "confection_list" ???
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
Copyright © 2000-2012 - www.developpez.com