Bonjour à tous et à toutes! :)

Je me décide enfin à poster, ça fait plusieurs heures que je bloque sur quelque chose, et je n'arrive pas à formuler correctement mon problème sur google (par exemple)... Désolé si il y a déjà eu un post, mais je ne l'ai malheureusement pas trouvé...

Ceci étant dis, voici mon problème:

J'ai une entité "projet" qui contient une ou plusieurs fonctionnalité (et une fonctionnalité est liée à un seul projet: ManyToOne - OneToMany donc).

Lorsque je fais mon formulaire pour la création d'un nouveau projet, j'ai suivi le tutoriel suivant: https://openclassrooms.com/courses/developpez-votre-site-web-avec-le-framework-symfony/creer-des-formulaires-avec-symfony (partie: "Relation multiple: imbriquer un même formulaire plusieurs fois")

A la soumission de mon formulaire (création d'un nouveau projet), tout se passe bien, le projet se crée, et les fonctionnalités se lient bien au projet. J'ai suivi cette partie de tuto: https://openclassrooms.com/courses/developpez-votre-site-web-avec-le-framework-symfony2/les-relations-entre-entites-avec-doctrine2 (partie: "Les relations bidirectionnelles")

Donc, déjà une première étape qui fonctionne bien.

Cependant, j'ai ensuite créé un formulaire (repris celui de la création pour les projets) pour modifier le projet créé. Aucun soucis à l'affichage, il m'affiche bien tous les champs comme pour la création du nouveau projet.

Par contre, le soucis, c'est que lorsque je soumet le formulaire ("Modifier le projet"), il me modifie bien tous les champs que j'ai modifier, sauf ... les fonctionnalités: si je supprime une fonctionnalité, il la laisse, et si j'ajoute une fonctionnalité, il me met l'erreur suivante:

"An exception occurred while executing 'INSERT INTO projets_fonctionnalites (titre, projet_id) VALUES (?, ?) with params ["test", null]: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'projet_id' cannot be null"

Je comprends bien l'erreur: doctrine ne peut pas ajouter la nouvelle fonctionnalité à la DB, parce qu'il manque le "projet_id" qui ne peut pas être null (pour l'intégrité de la DB).

Mais comment puis-je rajouter ce "projet_id"?

Dans mon entité "projet", j'ai déjà ajouté:

/**
 * Add fonctionnalite
 *
 * @param \ProjetsBundle\Entity\Fonctionnalites $fonctionnalite
 *
 * @return Projets
 */
public function addFonctionnalite(\ProjetsBundle\Entity\Fonctionnalites $fonctionnalite)
{
    $this->fonctionnalites[] = $fonctionnalite;

    // On lie la fonctionnalité au projet
    $fonctionnalite->setProjet($this);

    return $this;
}

Je suis un peu perdu, et je ne sais pas si j'ai été clair...

Par soucis de lisibilité, je n'ai pas joint beaucoup de code, mais si vous avez besoin de certaines parties de code, hésitez pas, je les rajouterai avec plaisir! :)

Merci,

Aucune réponse