Php renderFile不加载自定义细枝扩展
我正在尝试创建自己的生成器,使用SensioGeneratorBundle作为核心。但是,在加载自定义细枝扩展时存在一个问题。 如果我使用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' =
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);