/** * Retrieves the list of medias (paginated) * * @ApiDoc( * resource=true, * output={"class"="Sonata\MediaBundle\Model\Media", "groups"="sonata_api_read"} * ) * * @QueryParam(name="page", requirements="\d+", default="1", description="Page for media list pagination") * @QueryParam(name="count", requirements="\d+", default="10", description="Number of medias by page") * @QueryParam(name="enabled", requirements="0|1", nullable=true, strict=true, description="Enabled/Disabled medias filter") * @QueryParam(name="orderBy", array=true, requirements="ASC|DESC", nullable=true, strict=true, description="Order by array (key is field, value is direction)") * * @View(serializerGroups="sonata_api_read", serializerEnableMaxDepthChecks=true) * * @param ParamFetcherInterface $paramFetcher * * @return Media[] */ public function getMediaAction(ParamFetcherInterface $paramFetcher) { $page = $paramFetcher->get('page'); $count = $paramFetcher->get('count'); $orderBy = $paramFetcher->get('orderBy'); $criteria = $paramFetcher->all(); unset($criteria['page'], $criteria['count'], $criteria['orderBy']); foreach ($criteria as $key => $crit) { if (null === $crit) { unset($criteria[$key]); } } return $this->mediaManager->findBy($criteria, $orderBy, $count, $page); }