Bonjour à tous,
Voilà que Symfony plante avec un magnifique "Fatal error: Allowed memory size of 536870912 bytes exhausted" lorsque j'implante un embedding dans ma navbar ...
J'en ai pourtant un dans le footer qui lui marche parfaitement, j'ai comparé le code, je ne vois pas d'erreur...
Le but recherché est de disposer des variables "nomEntreprise" et de l'objet "homepage" dans la navbar qui me serviront à afficher logo + nom de l'entreprise...
Les dites variables sont aussi envoyées par le main controller pour la page d'accueil (qui sont bien affichées d'ailleurs), j'ai pensé à un conflit entre elles mais non, elles sont sensées se ré-écraser me semble t'il...
Si je retire la route dans la fonction index du NavBarController rien ne change, de même si je mets l'embedding dans base.html.twig avant l'include de la navbar ça ne plante plus mais les variables ne sont pas trouvées ! A n'y rien comprendre !
Merci d'avance pour votre dévouement
NavBarController.php
_nav.html.twig
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 <?php namespace App\Controller\Admin; use App\Repository\EntrepriseRepository; use App\Repository\HomepageRepository; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; class NavBarController extends AbstractController{ #[Route('/navbar',name:'navbar')] public function index(EntrepriseRepository $entrepriseRepository, HomepageRepository $homepageRepository): Response { //Récupération des infos de l'entreprise $idEntreprise = $entrepriseRepository->getMaxId(); $entreprise = $entrepriseRepository->findOneBy(['id' => $idEntreprise]); $nomEntreprise = $entreprise->getNomEntreprise(); //Récupération des infos de page d'accueil $idHomepage = $homepageRepository->getMaxId(); $homepage = $homepageRepository->findOneBy(['id' => $idHomepage]); return $this->render('_partials/_nav.html.twig', compact('homepage', 'nomEntreprise')); } }
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82 <nav class="navbar"> {{render(controller('App\\Controller\\Admin\\NavBarController::index'))}} <div class="brand"> {% if homepage.logo is not null%} <a href="#" class="navbar-brand" aria-label="Logo"><img src="{{asset('assets/uploads/logo/' ~ homepage.logo)}}" alt="Logo entreprise" style="height:50px;"></a> {% else %} <span class="logo"> <i class="fa-solid fa-truck-pickup"></i> </span> <p>{{nomEntreprise}}</p> {% endif %} </div> <button type="button" class="menu-hamburger" aria-label="Toggle navigation" aria-expanded="false"> <span></span> <span></span> <span></span> </button> <div class="menu-navbar"> <div class="div-links"> <ul class="navbar-nav"> <li class="active nav-item"> <i class="fa-solid fa-house"></i> <a href="{{path('app_index')}}" aria-label="Accueil" aria-current="page">Accueil</a> </li> <li class="nav-item"> <i class="fa-regular fa-clock"></i> <a href="{{path('app_horaires_semaine_index')}}" aria-label="Horaires">Nos horaires</a> </li> <li class="nav-item"> <i class="fa-solid fa-car-side"></i> <a href="{{path('app_vehicules_annonces_index')}}" arai-label="Annonces véhicules occasion">Annonces véhicules d'occasion</a> </li> <li class="nav-item"> <i class="fa-solid fa-screwdriver-wrench"></i> <a href="{{path('app_services_index')}}" aria-label="Services">Nos services</a> </li> <li class="nav-item"> <i class="fa-solid fa-phone"></i> <a href="">Nous contacter</a> </li> </ul> </div> <div class="div-connexion"> <ul class="navbar-nav"> {% if app.user %} {% if is_granted("ROLE_ADMIN") or is_granted("ROLE_EMPLOYEE") %} <li class="nav-item"> <i class="fa-solid fa-toolbox"></i> <a href="{{path('app_admin_index')}}">Administration</a> </li> {% endif %} <li class="nav-item"> <i class="fa-solid fa-arrow-right-from-bracket"></i> <a href="{{path('app_logout')}}">Se déconnecter</a> </li> {% if is_granted("ROLE_USER") %} <li class="nav-item"> <i class="fa-regular fa-id-card"></i> <a href="{{path('app_utilisateurs_profil')}}">Mon profil</a> </li> {% endif %} {% else %} <li class="nav-item user-toggler"> <i class="fa-solid fa-user"></i> <a href="#" aria-label="Page de connexion" alt="Icône utilisateur"></a> </li> <li class="nav-item connexions"> <i class="fa-solid fa-arrow-right-to-bracket"></i> <a href="{{path('app_login')}}">Se connecter</a> </li> <li class="nav-item connexions"> <i class="fa-regular fa-address-card"></i> <a href="{{path('app_register')}}">S'inscrire</a> </li> {% endif %} </ul> </div> </div> </nav>
base.html.twig
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title> {% block title %}Bienvenue ! {% endblock %} </title> {% block stylesheets %} {{ encore_entry_link_tags('app') }} <link rel="stylesheet" href={{asset('./css/styles.css')}}> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css"> {% endblock %} </head> <body> {{ include('/_partials/_nav.html.twig') }} {% if app.user and app.user.isVerified == false %} <div class="alert alert-warning alert-dismissible" role="alert"> <button type="button" class="btn-close" data-dismiss="alert" aria-label="Close">×</button> <div class="alert-message"> <strong>Votre compte n'est pas encore activé</strong> , <a href="{{path('resend_verif')}}">Cliquez ici pour renvoyer le lien d'activation</a> </div> </div> {% endif %} {% include("/_partials/_flash.html.twig") %} {% include("/_partials/_modal.html.twig") %} {% block body %}{% endblock %} {{ include('_partials/_footer.html.twig') }} {{ include('_partials/_cookies.html.twig') }} {% block javascripts %} <script type="text/javascript" src="{{asset('assets/js/main.js')}}" defer></script> {% endblock %} </body> </html>
Partager