2017-09-11 1 views
0

J'ai une fonction qui retourne le nombre d'articles dans le panier. Comment est-il possible d'afficher ce numéro sur toutes les pages du site? Je dois montrer sa valeur dans un fichier de branche qui est en cours de chargement dans toutes les pages du site ...renvoie le résultat de la fonction dans symfony comme global dans les modèles de brindille

C'est la fonction I d aiment utiliser:

public function getCartCount(){ 

    $session = new Session(); 

    $session_user = $session->get('temp_session_user'); 

    $em = $this->doctrine->getManager(); 

    $details = $em->getRepository('AppBundle:RechargeLogs')->findBy(array(

     'sessionVal'=> $session_user, 

     'status'=> 0 

)); 

Répondre

3

Il y a beaucoup de solutions pour cela,

vous pouvez créer un filtre brindille: https://symfony.com/doc/current/templating/twig_extension.html

vous pouvez incorporer contrôleur brindille: http://symfony.com/doc/current/templating/embedding_controllers.html

vous pouvez stocker une variable en session et accéder à brindille: https://symfony.com/doc/current/templating/app_variable.html

vous pouvez même créer le service et l'enregistrer comme une variable globale dans brindille et de l'utiliser: https://symfony.com/doc/current/templating/global_variables.html#referencing-services

+0

Merci pour votre très inforvative répondre! Ma question est de savoir si je peux utiliser la première option sans aucune variable .. J'ai édité ma question avec la fonction que je voudrais utiliser .. –

+1

@DimitriosMarkopoulos Eh bien, vous pouvez le créer comme fonction de brindille et ensuite appeler la fonction dans le modèle de brindille où vous en avez besoin, ou enregistrez-le dans une session, puis accédez-y dans twig. Pourquoi voudriez-vous ne pas utiliser de variables? vous devrez faire une requête pour cette valeur chaque fois que vous changez de page, pourquoi ne pas simplement l'enregistrer en session et l'afficher dans chaque page. – kunicmarko20

+0

Vous avez raison beaucoup mieux avec la variable de session –