J'ai une liste de pièces qui sont contrôlés avec des équipements.
Dans cette liste, je peux éditer la fiche d'une pièce où je peut voir les infos sur la pièce et tous les équipements utilisés qui ont été utilisés pour le contrôle de la pièce.
Je souhaite pouvoir dupliquer mon objet pièce avec toutes ces relations, modifier la référence avec un form et que le nouvel objet s'enregistre avec un nouvel id et les infos de la pièce que j'ai édité.
Voici le script
Avec la méthode clone,je souhaite récupérer les attributs de l'objet tout en settant certains. J'ai mis l'id à null afin qu'un autre id au moment du flush puisse être adjoint.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 if ($request->isMethod('POST')) { if ($pieceForm->isValid()) { $data = $pieceForm->getData(); $ref = $data['ref']; $em = $this->getDoctrine()->getManager(); $pieceRepository = $em->getRepository('PieceBundle:Fiche'); $fiche = $pieceRepository->find($piece->getId()); $fiche->setId(null); $fiche->setReference($ref); $newFiche = clone $fiche; $em->persist($newFiche); $em->flush(); }
J'ai voulu utiliser la méthode copy de doctrine mais j'ai toujours l'erreur not implemented.
Pour ce qui est du formulaire et de la récupération, de la référence, cependant c'est au moment de l'enregistrement que ça coince.
Si quelqu'un a dû cloner les attributs d'un objet tt en modifiant l'id,je suis preneur.
Merci
Partager