如何检查从控制器传递到twig模板的所有可用变量

时间:2017-08-06 04:12:01

标签: php templates twig symfony-2.3

如何检查所有变量是否存在

Exp in Controller返回此传递给twig模板:

return $this->render('index/index.html.twig', [ 'department'=>$departments,'URILink'=>$URILink,'departmentDetail'=>$departmentDetails, 'contentCell'=>$this->mContentCell ]);
  

然后twig模板可以通过这个来重用这些变量

index.html.twig:

</div> {{ include ('department_list.html.twig',{'departments':department,'URILink':URILink}) }}</div>

对于smarty模板中的比较,我们可以使用它:

get_template_vars() - 返回指定的变量值

  

如何在树枝模板中使用相同的类比来做到这一点?如果我想确保所有   变量已正确传递

3 个答案:

答案 0 :(得分:1)

读完之后

How to retrieve all Variables from a Twig Template?

我发现只是简单的

  

{%转储%}

将查看模板上传递的所有变量

答案 1 :(得分:0)

您可以按http://symfony.com/doc/current/book/templating.html#including-other-templates

添加这样的模板
{{ include('YourBundle:ControllerName:yourAction.html.twig', {'variableName': yourData}) }}

或者像http://twig.sensiolabs.org/doc/tags/include.html

这样
{% include 'template.html' with {'foo': 'bar'} %}

如果您想在variable mod:

中查看dev使用功能
{{ dump(yourVariable) }}

答案 2 :(得分:0)

在传递每个变量时,不是验证每个变量是否存在,在这种情况下使用过滤器default是更好的做法,imho,

<div>
    {{ include ('department_list.html.twig',  'departments':department|default(null),'URILink':URILink|default(null) }}
</div