Bonjour à tous, j’ai créé une fonction recherche fullt text dans mon HomeController.
J’essaye d'envoyer une variable globale à twig pour pouvoir l'avoir sur toutes mes pages (formulaire de recherche pour avoir la barre de recherche dans la navbar dans toutes mes pages).
Je ne comprends pas comment faire la liaison entre mon controller qui contient ma fonction "rechercher" et la variable global dans mon twig.yaml. (sur symfony 5).
Merci pour vos retour, ou même une piste pour me pencher dessus ????
ps:
mon HomeController:
Et mon twig.yaml:
twig:
default_path: '%kernel.project_dir%/templates'
form_themes: ['bootstrap_4_layout.html.twig']
globals:
global_var: 'Working !'
-> En gros recuprer ma variable à la place de la variable 'global_var'
Modifié par louyi (21 Jun 2021 - 12:18)
J’essaye d'envoyer une variable globale à twig pour pouvoir l'avoir sur toutes mes pages (formulaire de recherche pour avoir la barre de recherche dans la navbar dans toutes mes pages).
Je ne comprends pas comment faire la liaison entre mon controller qui contient ma fonction "rechercher" et la variable global dans mon twig.yaml. (sur symfony 5).
Merci pour vos retour, ou même une piste pour me pencher dessus ????
ps:
mon HomeController:
<?php
namespace App\Controller;
use App\Entity\Categories;
use App\Form\SearchArticleType;
use App\Repository\ArticlesRepository;
use App\Repository\CategoriesRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Form\Extension\Core\Type\SearchType;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Symfony\Component\Routing\Annotation\Route;
use Twig\Extra\Intl\IntlExtension;
class HomeController extends AbstractController
{
/**
* @Route("/", name="home")
* @param ArticlesRepository $articlesRepo
* @param CategoriesRepository $categoriesRepo
* @param Request $request
* @return Response
*/
public function index(ArticlesRepository $articlesRepo, CategoriesRepository $categoriesRepo, Request $request): Response
{
$articles = $articlesRepo->findBy(
['active' => true],
['created_at' => 'desc'],
7);
$articleHeader = $articlesRepo->findBy(
['featured' => true],
['featured_position' => 'asc']
);
$form = $this->createForm(SearchArticleType::class);
$search = $form->handleRequest($request);
if($form->isSubmitted() && $form->isValid()){
// Recherche des articles coorespondants aux mots-clés
$articles = $articlesRepo->search($search->get('mots')->getData());
}
return $this->render('home/index.html.twig', [
'articleHeader' => $articleHeader,
'articles' => $articles,
'controller_name' => 'HomeController',
'form' => $form->createView()
]);
}
/**
* @Route("/distributeurs", name="distributeurs")
*/
public function maplocator()
{
return $this->render('home/distributeurs.html.twig', [
]);
}
/**
* @Route("/rechercher", name="rechercher")
*/
public function search(ArticlesRepository $articlesRepo, CategoriesRepository $categoriesRepo, Request $request): Response
{
$articles = $articlesRepo->findBy(
['active' => true],
['created_at' => 'desc']
);
$form = $this->createForm(SearchArticleType::class);
$search = $form->handleRequest($request);
if($form->isSubmitted() && $form->isValid()){
// Recherche des articles coorespondants aux mots-clés
$articles = $articlesRepo->search($search->get('mots')->getData());
}
return $this->render('home/rechercher.html.twig', [
'articles' => $articles,
'form' => $form->createView()
]);
}
/**
* @Route("/categorie/{slug}", name="categories")
* @param Categories $categories
* @param ArticlesRepository $articlesRepo
* @return Response
*/
public function showArticlesCategories1(Categories $categories, ArticlesRepository $articlesRepo): Response
{
return $this->render('categories/index.html.twig', [
'articlesCategories' => $articlesRepo->findBy(
['categories' => $categories],
['created_at' => 'desc']),
// Boucle pour les categories META'S
'articlesCategoriesMeta' => $articlesRepo->findBy(
['categories' => $categories],
['created_at' => 'desc'], 1 ),
// Boucle pour les categories META'S
'categorieActuelle' => $articlesRepo->findBy(
['categories' => $categories],
['created_at' => 'desc'], 1 ),
]);
}
}
Et mon twig.yaml:
twig:
default_path: '%kernel.project_dir%/templates'
form_themes: ['bootstrap_4_layout.html.twig']
globals:
global_var: 'Working !'
-> En gros recuprer ma variable à la place de la variable 'global_var'
Modifié par louyi (21 Jun 2021 - 12:18)