Bonjour à tous,
Dans le but de disposer de 2 petites variables dans ma navbar, j'ai procédé à l'implantation d'un render de controller (embedding) cependant impossible de le faire marcher alors que j'ai utilisé la même procédure dans mon footer et que cela marche parfaitement... Je lis dans les forum que l'embedding est à éviter mais alors quelle alternative avons nous pour récupérer 2 variables dans la navbar ?
J'ai tout essayé ... une erreur Allocation max memory apparaît et fait planter Symfony + serveur + navigateur...
Ladite navbar est un _partial incrusté dans mon base.html.twig
Les deux variables sont des strings permettant d'afficher logo et nom d'entreprise dans la navbar... bref totalement basique...
`` {{ 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>{{entreprise.nomEntreprise}}</p>
{% endif %}
</div> ``
Je précise que si je mets ce code dans mon footer cela marche parfaitement ! donc, qu'est-ce qui pourrait clocher dans la navbar ?
Merci d'avance pour votre aimable réponse.
NavbarController.php :
```
namespace App\Controller\Admin;
use App\Repository\EntrepriseRepository;
use App\Repository\HomepageRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
class NavBarController extends AbstractController{
public function index(EntrepriseRepository $entrepriseRepository, HomepageRepository $homepageRepository): Response
{
//Récupération des infos de l'entreprise
$idEntreprise = $entrepriseRepository->getMaxId();
$entreprise = $entrepriseRepository->findOneBy(['id' => $idEntreprise]);
//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', 'entreprise'));
}
} ```