<?php declare(strict_types=1); /* * Copyright (C) 2015-2017 IRSTEA * All rights reserved. */ namespace Irstea\FileUploadBundle\Controller; use Irstea\FileUploadBundle\Entity\UploadedFile; use Pagerfanta\Adapter\DoctrineORMAdapter; use Pagerfanta\Pagerfanta; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\HttpFoundation\Request; /** * UploadedFile controller. * @Route("/files") * @Security("is_granted('ROLE_FILES_ADMIN')") */ class UploadedFileController extends Controller { /** * Lists all UploadedFile entities. * @Route("/", name="files") * @Method("GET") * @Template() */ public function indexAction(Request $request) { $em = $this->getDoctrine()->getManager(); $queryBuilder = $em->getRepository('IrsteaFileUploadBundle:UploadedFile') ->createQueryBuilder('u') ->orderBy('u.createdAt', 'DESC'); $pager = new Pagerfanta(new DoctrineORMAdapter($queryBuilder)); $pager->setCurrentPage($request->query->get('page', 1)); $uploadedFiles = $pager->getCurrentPageResults(); return [ 'uploadedFiles' => $uploadedFiles, 'pager' => $pager, ]; } /** * Finds and displays a UploadedFile entity. * @Route("/{id}", name="files_show") * @Method("GET") * @Template() */ public function showAction(UploadedFile $uploadedFile) { return [ 'uploadedFile' => $uploadedFile, ]; } /** * @param string $message * @param array $parameters */ public function notice($message, array $parameters = []) { $this->get('monolog.logger.irstea_logger')->notice($message, $parameters); } }