public function getRanking(Categoria $categoria = null, Usuario $usuario = null) { if (!$categoria) { return false; } $sql = "\n SELECT p.id, p.nombre AS nombre, avg(v.posicion) AS posicion \n FROM participante p \n INNER JOIN categoria c\n ON c.id = p.categoria_id\n AND c.id = " . $categoria->getId() . "\n LEFT JOIN voto v \n ON v.participante_id = p.id \n "; if ($usuario) { $sql .= "AND v.usuario_id = '" . $usuario->getId() . "'"; } $sql .= "\n GROUP BY p.id, p.nombre\n ORDER BY ISNULL(posicion), posicion, p.nombre\n "; $rsm = new ResultSetMapping(); $rsm->addScalarResult('id', 'id'); $rsm->addScalarResult('nombre', 'nombre'); $rsm->addScalarResult('posicion', 'posicion'); $query = $this->getEntityManager()->createNativeQuery($sql, $rsm); return $query->getResult(); }
/** * Creates a form to delete a Categoria entity. * * @param Categoria $categorium The Categoria entity * * @return \Symfony\Component\Form\Form The form */ private function createDeleteForm(Categoria $categorium) { return $this->createFormBuilder()->setAction($this->generateUrl('categoria_delete', array('id' => $categorium->getId())))->setMethod('DELETE')->getForm(); }