Bonjour,

J'ai créer une extension Twig sauf que j'ai un soucis pour récupérer l'entity manager.

Voici la déclaration de mon service :

[code]# twig extension
services:
my.twig.extension:
class: GG\UserBundle\Twig\UserExtension
arguments:
em: "@doctrine.orm.entity_manager"
tags:

  • { name: twig.extension }[/code]

Voici mon Extension :

[code]<?php
// src/GG/UserBundle/Twig/UserExtension.php
namespace GG\UserBundle\Twig;

class UserExtension extends \Twig_Extension
{
private $em;
private $conn;

public function __construct(\Doctrine\ORM\EntityManager $em) {
    $this->em = $em;
    $this->conn = $em->getConnection();
}
public function getFunctions()
{
    return array(
    'geekInscrits' => new \Twig_Function_Method($this, 'nbGeekInscrits'),
    );
}
public function nbGeekInscrits()
{
    $sql = 'COUNT(*) FROM GG_User';
    return $this->conn->fetchAll($sql);
}

public function getName()
{
    return 'gguser_extension';
}

}

?>[/code]

Voici mon erreur :

[code]ContextErrorException: Catchable Fatal Error: Argument 1 passed to GG\UserBundle\Twig\UserExtension::__construct() must be an instance of GG\UserBundle\Twig\EntityManager, instance of Doctrine\ORM\EntityManager given, called in /var/www/clients/client1/web1/web/symfony/app/cache/dev/appDevDebugProjectContainer.php on line 1911 and defined in /var/www/clients/client1/web1/web/symfony/src/GG/UserBundle/Twig/UserExtension.php line 11[/code]

J'ai déjà vidé le cache de manière manuelle et en invite de commande.

Merci de votre aide :)

Aucune réponse