我尝试将我的symfony2项目升级到symfony3(我已从twig 1.2迁移到twig 2.0,并升级其他一些捆绑包,如fos_user bundle,braincrafted / bootstrap bundle ...),我遇到错误:
Fatal Error: Call to a member function loadTemplate() on a non-object
详细日志是:
DEBUG - Notified event "kernel.controller" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\TemplateListener::onKernelController".
CRITICAL - Fatal Error: Call to a member function loadTemplate() on a non-object
CRITICAL - Uncaught PHP Exception Symfony\Component\Debug\Exception\FatalErrorException: "Error: Call to a member function loadTemplate() on a non-object" at /my/path/Symfony/vendor/symfony/symfony/src/Symfony/Bridge/Twig/Form/TwigRendererEngine.php line 156
包含表单块的第一个模板的错误触发器。如果我删除了表单块(例如{{form_start}}或{{form_widget(...)}}),则会出现另一个带有表单元素的模板的错误。
有没有人有想法帮助我?
提前致谢。
答案 0 :(得分:0)
我已禁用BraincraftedBootstrapBundle。 我在TwigRendererEngine.php中添加了一个print_r
protected function loadResourcesFromTheme($cacheKey, &$theme)
{
print_r($theme); // added for debug
if (!$theme instanceof \Twig_Template) {
/* @var \Twig_Template $theme */
$theme = $this->environment->loadTemplate($theme);
}
...
获取触发错误的模板名称。
似乎是“form_div_layout.html.twig”
当激活BraincraftedBootstrapBundle时,模板名称为BraincraftedBootstrapBundle:Form:bootstrap.html.twig(使用form_div_layout.html.twig)
这可以帮到你吗?谢谢
答案 1 :(得分:0)
我发现了一段时间的修复
我将我的作曲家从“sensio / distribution-bundle”:“5.0”更改为“sensio / distribution-bundle”:“~4.0”,似乎代码中有一些重大变化... < / p>
我仍然没有使用3.0版本,但现在它再次运行。