Bonjour les amis
J'ai un souci avec un requête doctrine dans une fonction twig qui s'execute a chaque rafraichissement de page
voici ma fonction dans mon template:
Voici le service ou j'envoie le container de service par argument (arguments: ["@service_container"]):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <span class="qtTotal">{{cartSession()}}</span>
Voici ma classe UtilityExtension :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 utility.twig.utility_extension: class: Backend\UtilityBundle\Twig\UtilityExtension tags: - { name: twig.extension } arguments: ["@service_container"]
Donc il ce trouve que quand je suis en local je récupère bien mon objet $cart présent en base grâce à doctrine:
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
35
36
37
38
39
40
41
42
43
44
45
46
47 <?php namespace Backend\UtilityBundle\Twig; use Frontend\PanierBundle\FrontendPanierBundle; class utilityExtension extends \Twig_Extension { protected $container; public function __construct($container = null) { $this->container = $container; } public function getFunctions() { return array( new \Twig_SimpleFunction('cartSession', array($this, 'getCartSession')), ); } public function getCartSession() { $qtTotal = 0; $cart = null; $this->user_session = $this->container->get('security.context')->getToken()->getUser(); $this->panierSession = $this->container->get('session'); if($this->panierSession->get('cart')){ $cart = $this->container->get('doctrine')->getManager()->getRepository('FrontendPanierBundle:Cart')->findOneById($this->panierSession->get('cart')); var_dump($cart);exit; } return $qtTotal; } public function getName() { return 'utility_extension'; } } ?>
Mais quand je fais la même démarche en ligne sur mon serveur, une page blanche apparait, je ne comprend pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $cart = $this->container->get('doctrine')->getManager()->getRepository('FrontendPanierBundle:Cart')->findOneById($this->panierSession->get('cart')); var_dump($cart);exit;
Pour info mon container est bien présent si je fais un var_dump($this->container) en local mais toujour une page blanche en ligne.
Une idée les amis
Partager