Symfony - Symfony 3 manyToMany Add

 
Vista:

Symfony 3 manyToMany Add

Publicado por jordi (1 intervención) el 09/08/2016 13:02:27
Buenos días tengo un pequeño entuerto,

Tengo una Data Base, en dos tablas estoy usando una relación many to many "muchos a mucho", en Symfony 3.0.0 tengo el .orm.yml, todos estos apartados están bien, pero a la hora de hacer el add en el Controlador no se muy bien como estructurarlo, he seguido los pasaos de:

http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/association-mapping.html#many-to-many-unidirectional

La funcion es la siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
public function registrarAction(Request $request)
    {
        $fichavinos =  new Fichavinos();
        $form = $this->createForm(FichavinosType::class,$fichavinos);
 
        $form->handleRequest($request);
 
        if ($form->isSubmitted())
        {
            if($form->isValid())
            {
                $em = $this->getDoctrine()->getEntityManager();
                $idDenominacionorigen_repo = $em->getRepository("AppBundle:Denominacionorigen");
                $idVariedadinternacional_repo = $em->getRepository("AppBundle:Variedadinternacional");
                $idVariedadtradicional_repo = $em->getRepository("AppBundle:Variedadtradicional");
 
                $fichaVinos = new Fichavinos();
                $fichaVinos->setNombrevino($form->get("nombrevino")->getData());
 
                // A partir de aquí la cosa se me desmadra
                //$idVariedadinternacional = $idVariedadinternacional_repo->find($form->get("idvariedadinternacional")->getData());
                $idvariedadinternacional = $this->getDoctrine()->getRepository('AppBundle:Variedadinternacional')->findOneBy(array('idVariedadInternacional' => $idVariedadinternacional->getIdVariedadinternacional()));
                $fichaVinos->addIdvariedadinternacional($idvariedadinternacional);
 
 
                //$idVariedadtradicional = $idVariedadtradicional_repo->find($form->get("idvariedadtradicional")->getData());
                $idVariedadtradicional = $this->getDoctrine()->getRepository('AppBundle:Variedadtradicional')->findOneBy(array('idVariedadTradicional' => $idVariedadtradicional->getIdVariedadtradicional()));
                $fichaVinos->addIdvariedadtradicional($idVariedadtradicional);
 
                $em->persist($fichaVinos);
                $flush = $em->flush();
            } else {
                $status = "Formulari no es Valid.";
            }
 
            // se envia el menssage de error a form.html.twig
            $this->session->getFlashBag()->add("status", $status);
        }

Error:
Notice: Undefined variable: idVariedadinternacional
500 Internal Server Error - ContextErrorException

No encuentro como hacer el Add bien, muchas gracias de antemano por la ayuda :)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder