Bonjour,
J'ai un souci surprenant, sur lequel je viens de passer plusieurs heures, sans succès.
Mon objectif est de stocker en session la dernière route appelée et ses paramètres. Voici le code :
La variable de session est créée correctement, mais le problème est que lorsque je change de page et que l'événement est de nouveau invoqué, la variable de session route_info est systématiquement modifiée par je ne sais quel processus, et ne vaut donc pas la valeur attendue au premier var_dump. J'ai eu beau essayer de tracer l'origine de ce changement, mais je n'arrive pas trouver où cette valeur est modifiée. C'est très contrariant.
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
28
29
30
31
32
33
34 class CMTRequestListener { protected $session; public function __construct(Session $session) { $this->session = $session; } public function onRequestEvent(GetResponseEvent $event) { if (HttpKernel::MASTER_REQUEST != $event->getRequestType()) { return; } $request = $event->getRequest(); $attributes = $request->attributes; // Stores current Route $routeName = $attributes->get('_route'); var_dump($this->session->get('route_info')); if ($routeName != "cmt_cluster_change" && $routeName != "_wdt") { $route = array( 'name' => $routeName, 'params' => $attributes->get('_route_params') ); $this->session->set('route_info', $route); } } }
Alors peut-être que je me suis trompé dans l'utilisation des sessions ? Merci d'avance pour votre aide !
Partager