如何在扩展的树枝页面(Symfony)上使用变量?

时间:2018-12-03 08:56:43

标签: php symfony variables twig

我使用Controller.php将数据返回到我的树枝模板:

  return $this->render('list.html.twig', ['page' => $page]);

在我的list.html.twig上,我可以输出变量:

{{page.name}}

但是我将base.html树枝延伸到list.html.twig上:

{% extends 'base.html.twig' %}

因此,当我想将变量输出到base.html.twig上时:

{{page.name}}

然后我收到错误消息:

  

未捕获的PHP异常Twig_Error_Runtime:“变量”页面不存在   存在。”位于/Users/work/project/templates/base.html.twig第70行

1 个答案:

答案 0 :(得分:2)

在您的base.html.twig上添加

{% block page %}{% endblock page %}

然后在list.html.twig上添加{% block page %}{{page.name}}{% endblock page %}

因此您可以拥有一个base.html.twig这样的文件

<html>
    <body>
        <h1>{% block page %}{% endblock page %}
        <p>{% block content%}{% endblock content %}</p>
    </body>
</html>

和类似的list.html.twig

{% extends 'base.html.twig' %}

{% block page %}{{ page.name }}{% endblock page %}
{% block content %}errything else for page here{% endblock content %}

,它将是有效的,并且将通过继承覆盖base.html.twig的页面块。

添加了一个twigfiddle示例 https://twigfiddle.com/d1hmo9