来自routing.yml的Symfony2模板配置
在处理Sylius电子商务捆绑包时,我发现了一种为路由配置模板的方法,但我不知道: 我已经在一个全新的Symfony RC 2.2.0中测试了供应商的安装。 这将在routing.yml中来自routing.yml的Symfony2模板配置,symfony,Symfony,在处理Sylius电子商务捆绑包时,我发现了一种为路由配置模板的方法,但我不知道: 我已经在一个全新的Symfony RC 2.2.0中测试了供应商的安装。 这将在routing.yml中 _welcome: pattern: / defaults: _controller: AcmeDemoBundle:Welcome:index _template: AcmeDemoBundle:Welcome:index # added by me 这将生成一个
_welcome:
pattern: /
defaults:
_controller: AcmeDemoBundle:Welcome:index
_template: AcmeDemoBundle:Welcome:index # added by me
这将生成一个错误:
FatalErrorException:错误:在上调用成员函数getTemplate()
中的非对象
.... \供应商\sensio\framework extra bundle\sensio\bundle\FrameworkExtraBundle\EventListener\TemplateListener.php
第62行
现在,在TemplateListener中,我们得到的是:
if (!$configuration = $request->attributes->get('_template')) {
return;
}
if (!$configuration->getTemplate()) {
$guesser = $this->container->get('sensio_framework_extra.view.guesser');
$configuration->setTemplate($guesser->guessTemplateName($controller, $request, $configuration->getEngine()));
}
$configuration是一个字符串,实际上是我放在routing.yml(AcmeDemoBundle:Welcome:index)中的模板。通过添加一个var\u dump
并检查参数bag->get方法进行检查,这就是$request->attributes
的功能
所以。为什么TemplateListener需要一个对象?我错过了什么?我是否在routing.yml中配置错误?此参数在Symfony本身中不可用 该功能由SyliusResourceBundle提供,仅在Sylius控制器中可用。 显然,
\u template
请求属性与SensioFrameworkExtraBundle冲突,后者使用相同的名称存储对象
我们必须将这些参数移到配置节点的更深处,以避免将来出现此类问题。
您可以随时查看存储库,修复程序应该今天就到。太好了!谢谢你,Pawel,我以为这是一些symfony的东西(看起来像),否则我会在github中询问。当做