Más que problema es una duda en Symfony2.4, con respecto a los campos "Entity" o "selects" que se alimentan de una BD y formularios embebidos.
Tengo un formulario que tiene embebido otro formulario que a su vez tienen 3 campos "Entity" que me generan un select con las opciones de la BD. Para explicar mejor mi duda inserto una imagen de cómo queda este formulario:
Como pueden observar con solo cuatro formularios embebidos genero un total de 32 DB Queries. Esto debido a que por cada campo "Entity" me genera de 1 a 3 consultas para obtener las opciones y si agrego otro formulario mediante el botón "Agregar" se suman otras 6 DB Queries.
Se me ocurrió pasar un objeto que contuviera todas las Entidades que ocupo en los FormType, algo así
Código PHP:
$TorneoRol = $em->getRepository('FutbolMainBundle:Torneos')->getJoinnEntidades($id,$Cliente_id);
$editForm = $this->createForm(new TorneoType(), $TorneoRol, array('ClienteID' => $Cliente_id,'idToreno' =>$id,'Torneo'=>$TorneoRol));
Código PHP:
//FormType
$Torneo =$options['Torneo'];
$builder
->add('idInscripcionequipo', 'entity', array(
'class' => 'FutbolMainBundle:Inscripcionequipo',
'property' => 'idEquipo',
'empty_value' => '**Selecciona un Equipo**',
'query_builder' => function(FutbolMainBundleRepositoryInscripcionequiposRepository $em) use ($idCliente,$idToreno,$Torneo) {
return $em->getEquipos($idCliente,$idToreno,$Torneo); },
));
// Repositorio Inscripcioneqipo
public function getEquipos($idCliente,$idToreno,$Torneo)
{
return $this->createQueryBuilder('ins')
->Join('ins.idEquipo', 'e')
->leftJoin('ins.idTorneo', 't')
->Join('ins.PIExy', 'pie')
->Join('pie.idPartido', 'p')
->where('ins.idCliente = :company')
->andWhere('ins.idTorneo = :torneo')
->setParameters(array ('company' => $idCliente,
'torneo' => $Torneo))
->orderBy('e.nombre', 'ASC');
}
Alguien sabe algo al respecto que me pueda orientar un poco?