Ver Mensaje Individual
  #3 (permalink)  
Antiguo 09/09/2013, 03:13
alexhiglesias
 
Fecha de Ingreso: septiembre-2013
Mensajes: 3
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Cómo funciona ArrayCollectio

Muchas gracias por la informacion porque necesitaba algo q me lo explicara, he estado haciendo el YML, no se si terminara estando bien o no...

Código:
Acme\DemoBundle\Entity\Matricula:
    type: entity
    table: matricula
    fields:
        id:
            codCurso:
                associationKey: true
            codAlumno:
                associationKey: true
            codModulo:
                associationKey: true            



    oneToOne:
        codAlumno:
            targetEntity: Alumno
            joinColumns:
                cod_alumno:
                    referencedColumName: id
            orphanRemoval: false            
            
    manyToOne:
        codCurso:
            targetEntity: Curso
            joinColumns:
                cod_curso:
                    referencedColumName: id
            orphanRemoval: false



    manyToMany:
        codModulo:
            targetEntity: Modulo
            joinColumns:
                cod_modulo:
                    referencedColumnName: id
            orphanRemoval: false
                  
    lifecycleCallbacks: {  }
Mas o menos, seria, 1 alumno solo puede tener una matricula, una matricula solo puede tener un curso, pero un curso puede estar en muchas matriculas y una matricula puede tener muchos modulos y un modulo puede estar en muchas matriculas, no se si estaria bien hecho el codigo lo he seguido por los links q me pasaste.

A la hora de hacer la inserccion manual como me comentaste, me da este error:

An exception occurred while executing 'INSERT INTO matricula_modulo (matricula_id, modulo_id) VALUES (?, ?)' with params [6, 41]:

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'Masters.matricula_modulo' doesn't exist

La verdad es que no se por donde coger este error, porque habla de una tabla pero yo la inserto en la de Matricula en ninguna otra mas utilice este codigo mas o menos es lo mismo que me pusiste tu.

$modulos = $this->getDoctrine()->getRepository('AcmeDemoBundle:Modulo')->findAll();
$matricula = new Matricula();
$codCurso= $this->getDoctrine()->getRepository('AcmeDemoBundle:Curso')->find($id);
$codAlumno=$this->getDoctrine()->getRepository('AcmeDemoBundle:Alumno')->find($id);

$matricula->addCodModulo($modulos[1]);
$matricula->setCodCurso($codCurso);
$matricula->setCodAlumno($codAlumno);
$em->persist($matricula);
$em->flush();

A ver si sabes mas o menos por donde va el error.

Y muchisimas gracias Lisandro porqe la informacion me ha servido de bastante.