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.