/**
* @Route("/exportar2/{_format}", defaults={"_format"="csv"}, requirements={"_format"="csv|xls|xml|json"}, name="area_exportar2")
* @Template()
*/
public function exportarAction(Request $request) {
// realizamos la consulta a la entidad
$em = $this->getDoctrine()->getManager();
// ordenamos los resultados en forma ascendente
$query = $em->createQuery("SELECT
a.id,trim(a.nombrearea) nombrearea,a.estado FROM AdminBundle:CtlAreas a ORDER BY a.nombrearea");
$data = $query->getResult();
// obtenemos el formato indicado en la url
$format = $request->getRequestFormat();
// asignamos el nombre del archivo según el formato indicado
$filename = "area_listado_" . date("Y_m_d") . "." . $format;
// verificamos la extensión segun la ruta indicada a traves de la url
if ($format == "json") {
$response = new Response;
$response->setContent(json_encode($data));
$response = $this->render(':CtlAreas:area_json.html.twig', array('entities' => $data));
$response->headers->set('Content-Type', 'application/json; charset=us-ascii');
$response->headers->set('Content-Disposition', 'attachment; filename=' . $filename);
$response->headers->set('Pragma', 'public');
$response->headers->set('Cache-Control', 'maxage=1');
return $response;
} else if ($format == "csv") {
$response = $this->render(':CtlAreas:area_csv.html.twig', array('entities' => $data));
$response->headers->set('Content-Type', 'text/plain; charset=utf-8');
$response->headers->set('Content-Disposition', 'attachment; filename=' . $filename);
$response->headers->set('Pragma', 'public');
$response->headers->set('Cache-Control', 'maxage=1');
return $response;
} else if ($format == "xls") {
$response = $this->render(':CtlAreas:area_xls.html.twig', array('entities' => $data));
$response->headers->set('Content-Type', 'text/vnd.ms-excel; charset=utf-8');
$response->headers->set('Content-Disposition', 'attachment; filename=' . $filename);
$response->headers->set('Pragma', 'public');
$response->headers->set('Cache-Control', 'maxage=1');
return $response;
} else if ($format == "xml") {
$response = $this->render(':CtlAreas:area_xml.html.twig', array('entities' => $data));
$response->headers->set('Content-Type', 'application/xml; charset=utf-8');
$response->headers->set('Content-Disposition', 'attachment; filename=' . $filename);
$response->headers->set('Pragma', 'public');
$response->headers->set('Cache-Control', 'maxage=1');
return $response;
}
}