Hello,
Je ne trouve pas de solution pour créer une many to many sur la même
table.
Je créer mon schema.yml, je génère mes objects, mes forms... Aucun
pb... Mes relations sont bien crées en base...
J'édite un élément, j'ai bien ma multi selecbox.... aucun pb...
c'est au moment de la sauvegarde d'un product ou l'on a ajouté des
frères ou j'ai une erreur 500 :
Not null violation: 7 ERROR: null value in column "product_brother_id"
violates not-null constraint
schema.yml
----------------------------------------------------------------------------------------------------------------------------------
Product:
actAs:
Timestampable: ~
columns:
id: {type: string(4), primary: true, notnull: true}
title: {type: string(200), notnull: true}
relations:
Products:
class: Product
refClass: ProductBrother
ProductBrother:
columns:
product_id: {type: string(20), primary: true, notnull: true}
product_brother_id: {type: string(20), primary: true, notnull:
true}
relations:
Product: {onDelete: CASCADE, class: Product, local: product_id,
foreign: id}
ProductBrother: {onDelete: CASCADE, class: Product, local:
product_brother_id, foreign: id}
----------------------------------------------------------------------------------------------------------------------------------
J'ai regardé d'où pouvait venir l'erreur afin de trouver une solution
et voici mes conclusions:
1 - lors du $productForm->save();
2 - la method saveProductsList déclarée dans mon
BaseProductForm.clss.php est appelée
A la fin de cette method est appelée l'instruction
$this->object->link('Products', array_values($link));
3 - la method link est déclarée dans l'object Record (vendor\symfony
\lib\plugins\sfDoctrinePlugin\lib\vendor\doctrine\Doctrine\Record.php)
et c'est là d'où provient l'erreur :
foreach ($ids as $id) {
$record = new $modelClassName;
$record[$localFieldName] = $identifier;
$record[$foreignFieldName] = $id; //
$record->save();
}
$localFieldName est bien égale à product_id.
le pb est que $foreignFieldName est également égale à product_id alors
qu'il devrait être égale à product_brother_id.
J'imagine que cette erreur est du à mon schema.yml.
Merci à ceux qui pourront m'aidé
--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe Groupe "Symfony-fr"
de Google Groupes.
Pour transmettre des messages à ce groupe, envoyez un e-mail à
l'adresse [email protected]
Pour résilier votre abonnement à ce groupe, envoyez un e-mail à
l'adresse [email protected]
Pour afficher d'autres options, visitez ce groupe à l'adresse
http://groups.google.com/group/symfony-fr?hl=fr
-~----------~----~----~----~------~----~------~--~---