首页 > 解决方案 > 如何在我的扩展树枝页面 (Symfony) 上使用变量?

问题描述

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

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

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

{{page.name}}

但是我在 list.html.twig 上扩展了我的 base.html 树枝:

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

所以当我想在我的 base.html.twig 上输出我的变量时:

{{page.name}}

然后我收到错误消息:

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

标签: phpsymfonyvariablestwig

解决方案


在你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


推荐阅读