Haciendo consultas parametricas con Doctrine 2
La funcion se carga en los repositorios del modelo para asi crear metodos reutilizables, fabricando pequeñas consultas para crear consultas mas elavoradas, el parametro se setea en esta linea "$zc->setParameter('id', $oid);" pasandole a la consulta el parametro que resibe desde la funcion. Acá "$result = $zc->getArrayResult();" le decimos que queremos los resultados en un Array, por otra parte si queremos un objeto ponemos "$result = $zc->getResult();" a demas de hacer Left Joins con varias tablas, para graficarlo de mejor manera, y para que no se caiga el metodo si la consulta devuelve vacio se pesquiza si existe el Array o el Object.
lol.php
<?php
public function getTecnicoByOrden($oid) {
$dql = "SELECT te.nro_tecnico as numero, cl.nombre as clasificacion,
ar.nombre as area, te.nombre as nombre
FROM entities\Orden o
LEFT JOIN o.zonacontrato_id zc
LEFT JOIN o.trabajo_id tr
LEFT JOIN tr.clasificacion_id cl
LEFT JOIN tr.area_id ar
LEFT JOIN zc.tecnico_id te
WHERE o.id = :id";
$zc = $this->_em->createQuery($dql);
$zc->setParameter('id', $oid);
$result = $zc->getArrayResult();
if (empty($result)) {
return False;
} else {
return $result[0];
}
}
?>
Comentarios
Publicar un comentario