<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use App\Entity\Category;
use App\Entity\Service;
use App\Entity\Numero;
class AppController extends AbstractController
{
/**
* @Route("/", name="app_app")
*/
public function index()
{
$em = $this->getDoctrine()->getManager();
$menu = null;
$category = $em->getRepository(Category::class)->findAll();
return $this->render('app/index.html.twig', [
'category'=>$category,
'menu'=>$menu]);
}
/**
* @Route("/search", name="app.search")
*/
public function search(Request $request)
{
$em = $this->getDoctrine()->getManager();
$menu = null;
if($request->isMethod('post')){
$search = $request->get('search');
$sql= 'SELECT s.*, s.name AS nameService, c.name AS nameCat, c.color AS color
FROM service s
LEFT JOIN category c ON c.id = s.category_id
WHERE s.name LIKE "%'.$search.'%"';
$result = $em->getConnection()->fetchAllAssociative($sql);
foreach ($result as $key => $r) {
$sql="SELECT n.*, n.numero AS num
FROM numero n
WHERE n.service_id ='".$r['id']."'";
$numero = $em->getConnection()->fetchAllAssociative($sql);
$result[$key]['num']=$numero;
}
}
return $this->render('app/search.html.twig', [
'menu'=>$menu,
'result'=>$result]);
}
/**
* @Route("/service/{id}", name="app_service")
*/
public function Service($id)
{
$em = $this->getDoctrine()->getManager();
$category = $em->getRepository(Category::class)->findOneBy(['id'=>$id]);
$services = $em->getRepository(Service::class)->findBy(['category'=>$category,'enable'=>'1']);
foreach ($services as $service ) {
$num = $em->getRepository(Numero::class)->findBy(['service'=>$service]);
}
$subServ = $em->getRepository(Service::class)->findBy(['category'=>$category,'enable'=>'1','sub'=>'1']);
$numSub=[];
foreach ($subServ as $sub ) {
$numServ = $em->getRepository(Service::class)->findBy(['subCategory'=>$sub->getId()]);
foreach ($numServ as $nums ) {
$num = $em->getRepository(Numero::class)->findBy(['service'=>$nums]);
$numSub[] = $num;
}
}
$menu = null;
return $this->render('app/service.html.twig', [
'category'=>$category,
'services'=>$services,
'numSub'=>$numSub,
'menu'=>$menu]);
}
}