122
use AppBundle\Form\Type\VendorFilterFormType;
use AppBundle\Form\Type\VendorFormType;
use Sensio\Bundle\FrameworkExtraBundle\Configuration as Config;
use Symfony\Component\Form\FormError;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Response;
class VendorController extends InitializableController
{
/**
* @return RedirectResponse|Response
* @Config\Route("/vendor/index/{pagenum}", name = "site_vendor_index",
defaults={ "pagenum": "1"})
*/
public function indexAction($pagenum=1)
{
if (!($this->authChecker->isGranted(Role::ADMIN))) {
return $this->redirectToRoute('homepage');
}
else {
$form=$this->createForm(new VendorFilterFormType());
$caption = null;
$form->handleRequest($this->request);
$query = $this->getRepository('Vendor')->createQueryBuilder('v')
->orderBy('v.caption', 'DESC');
$countquery =
$this->getRepository('Vendor')->createQueryBuilder('v')
->select('COUNT(DISTINCT v.id)');
if ($form->isSubmitted() && $form->isValid()) {
$caption = $form->get('caption')->getData();
}
if (!empty($caption)) {
$query->andWhere('LOWER(v.caption) LIKE
LOWER(:caption) ')->setParameter('caption', '%' . trim($caption) . '%');
$countquery->andWhere('LOWER(v.caption) LIKE
LOWER(:caption) ')->setParameter('caption', '%' . trim($caption) . '%');