Php renderFile不加载自定义细枝扩展

Php renderFile不加载自定义细枝扩展,php,symfony,twig,Php,Symfony,Twig,我正在尝试创建自己的生成器,使用SensioGeneratorBundle作为核心。但是,在加载自定义细枝扩展时存在一个问题。 如果我使用 return$this->container->get('templating')->renderResponse('Acme:Generator/Work:edit.html.twig',array()) 扩展正在工作,但如果我使用 return $this->renderFile('edit.html.twig', array('entity' =

我正在尝试创建自己的生成器,使用SensioGeneratorBundle作为核心。但是,在加载自定义细枝扩展时存在一个问题。 如果我使用

return$this->container->get('templating')->renderResponse('Acme:Generator/Work:edit.html.twig',array())

扩展正在工作,但如果我使用

return $this->renderFile('edit.html.twig', array('entity' => $entity));
在哪里

仅加载核心细枝扩展。我得到一个错误

第9行的edit.html.twig中不存在过滤器“price”


有什么想法吗?

SensioGeneratorBundle
在您给出的
renderFile()
方法中创建自己的细枝实例,并且它与加载到Symfony的服务容器中的细枝实例没有任何共同之处,该服务容器通过调用
$this->container->get('templating')->renderResponse()
来使用

这里不能使用服务容器中的细枝实例,因为它有一些行为可能会破坏Sensio的骨架渲染。因此,新的细枝环境实例是在
renderFile()
方法中故意创建的

您需要在
renderFile()
方法中将过滤器手动添加到新创建的细枝环境实例中,如下所示:

$twig->addFilter($filter);
关于细枝过滤器:

$twig->addFilter($filter);