在Symfony2中,我创建了简单的操作:
public function testAction()
{
return $this->render('TestBundle::test.html.twig', array(
'testBool' => true,
'testTplPath' => 'TestBundle::base.html.twig'
));
}
base.html.twig:
<html><body>{% block content %}{% endblock %}</body></html>
现在我的test.html.twig模板中的extends标签有问题,如果我在这个标签中使用简单的字符串,如下所示:{% extends 'TestBundle::base.html.twig' %}
一切正常,但这个dosn工作:{{ 1}}。第二个例子引发了我的错误:{% extends testTplPath %}
。
这很好用:Variable "testTplPath" does not exist in TestBundle::test.html.twig at line 1
抛出异常:{% extends testBool ? 'TestBundle::base.html.twig' : 'blah' %}
- {% extends testBool ? testTplPath : 'blah' %}
(请注意,Twig会抛出有关Variable "testBool" does not exist in TestBundle::test.html.twig at line 1
变量的异常 - 为什么?!)
根据TWIG文件,abowe的所有例子都应该有用,我不知道我做错了什么。
我做了很多测试,当exted看到变量时,我无法计算出任何模式。
我目前使用的是Twig v1.16.0和Symfony 2.5.4
更新:我注意到更奇怪的事情,如果我放入testBool
有效路径或创建任何其他动态experssion返回有效路径我得到testTplPath
异常,但如果它返回我收到的无效路径:Variable "[first var in expression]" does not exist
。
答案 0 :(得分:0)
我发现了问题。
在模板test.html.twig中我也有全局表单,我确信这个表单并不重要但是... https://github.com/symfony/symfony/issues/5284看起来这个bug仍然没有完全修复。我使用[_self,form_theme]%}从{%form_theme表单中删除了_self,现在一切正常。