src/Controller/ApiThemeCategorieController.php line 17

  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. use App\Repository\ThemeCategorieRepository;
  7. use App\Repository\ThemeSousCategorieRepository;
  8. use Symfony\Component\HttpFoundation\RequestStack;
  9. use Symfony\Component\Asset\Packages;
  10. #[Route('/api'name'api_')]
  11. class ApiThemeCategorieController extends AbstractController
  12. {
  13.     #[Route('/categorie/theme'name'_theme_categorie')]
  14.     public function index(ThemeCategorieRepository $ThemeCategorieRepository,ThemeSousCategorieRepository $ThemeSousCategorieRepositoryRequestStack $requestStackPackages $packages): Response
  15.     {
  16.         $categories $ThemeCategorieRepository->getThemeCat();
  17.         
  18.         $cateArray = [];
  19.         foreach ($categories as $categorie) {
  20.             $baseUrl $requestStack->getCurrentRequest()->getSchemeAndHttpHost();
  21.             $imageUrl $baseUrl $packages->getUrl$categorie['image']);
  22.             $sousCategories $ThemeSousCategorieRepository->findByIdCat($categorie['id']);
  23.             $sousCatArray = [];
  24.             if (count($sousCategories) > 0) {
  25.                
  26.                 foreach
  27.                 ($sousCategories as $sousCategorie) {
  28.                     $sousCatArray[] = [
  29.                         'id' => $sousCategorie->getId(),
  30.                         'nom' => $sousCategorie->getNom(),
  31.                     ];
  32.                 }   
  33.             }
  34.            
  35.             $cateArray[] = [
  36.                 'id' => $categorie['id'],
  37.                 'nom' => $categorie['nom'],
  38.                 'image' => $imageUrl,
  39.                 'couleur' => $categorie['color'],
  40.                 'sousCategories' => $sousCatArray,
  41.             ];
  42.         }
  43.         return $this->json([
  44.             'message' => 'get theme categorie',
  45.             'data' => $cateArray,
  46.         ], 200);
  47.     }
  48. }