/** * Lists all Category entities. * * @Route("/categories") * @Method("GET") * * @return JsonResponse * * @author João Paulo Cercal <*****@*****.**> * @version 0.1 */ public function categoriesAction() { $repository = $this->get('doctrine')->getRepository('CekurteZCPEBundle:Category'); $entityFilter = new Category(); $entityFilter->setDeleted(false); $result = $repository->getQuery($entityFilter, 'ck.title', 'asc')->getResult(); $data = array(); foreach ($result as $item) { $data[] = array('id' => $item->getId(), 'category' => $item->getTitle(), 'description' => $item->getDescription()); } return new JsonResponse($data); }
/** * Search for records based on an entity * * @param Category $entity * @param string $sort * @param string $direction * @return \Doctrine\ORM\Query * * @author João Paulo Cercal <*****@*****.**> * @version 0.1 */ public function getQuery(Category $entity, $sort, $direction) { $queryBuilder = $this->createQueryBuilder('ck'); $data = array('title' => $entity->getTitle(), 'description' => $entity->getDescription()); if (!empty($data['title'])) { $queryBuilder->andWhere($queryBuilder->expr()->like('ck.title', ':title'))->setParameter('title', "%{$data['title']}%"); } if (!empty($data['description'])) { $queryBuilder->andWhere($queryBuilder->expr()->like('ck.description', ':description'))->setParameter('description', "%{$data['description']}%"); } $queryBuilder->andWhere($queryBuilder->expr()->eq('ck.deleted', ':deleted'))->setParameter('deleted', false); return $queryBuilder->orderBy($sort, $direction)->getQuery(); }