【问题标题】:Can't override block content twig无法覆盖块内容树枝
【发布时间】:2015-02-20 13:58:09
【问题描述】:

我正在尝试覆盖标题栏的内容,但没有成功。情况如下。

header.html.twig

<!DOCTYPE html>
<html lang="en">

<head>
    <title>{% block pageTitle %}title{% endblock %}</title>
</head>
<body>

layout.html.twig

 {% include 'header.html.twig' %}
    <body>
        <div id="wrapper">
            <div id="page-wrapper">
    ........

users.html.twig

 {% extends 'layout.html.twig' %}
 {% block pageTitle %}Users{% endblock %}

此时页面标题并未按预期更改。我已经读过,当模板被“包含”时,无法更改块。 建议是改用嵌入。当我将包含更改为嵌入时,我得到了

A template that extends another one cannot have a body in 

任何想法如何管理它的工作?

【问题讨论】:

    标签: symfony templates twig silex


    【解决方案1】:

    问题可能来自layout.html.twig,需要定义一个body块,即:

        {% block body %}
        <body>
            <div id="wrapper">
                <div id="page-wrapper">
    
        [...]
        {% endblock %}
    

    embed combines the behavior of include & extends

    【讨论】:

    • 当我添加块体时,我得到 Unexpected token "end of template" of value ""
    • 检查是否忘记关闭块或嵌入标签。
    【解决方案2】:

    也许改用embeded

    {% embed 'layout.html.twig' %}
        {% block pageTitle %}Users{% endblock %}
    {% endembed %}
    

    文档: http://twig.sensiolabs.org/doc/tags/embed.html

    【讨论】:

      【解决方案3】:

      你不能覆盖包含的块,你只能扩展它们。

      你可以通过稍微改变你的架构来解决这个问题:

      layout.html.twig

      <!DOCTYPE html>
      <html lang="en">
      
      <head>
          <title>{% block pageTitle %}title{% endblock %}</title>
      </head>
      <body>
          {% block pageBody %}{% endblock %}
      </body>
      </html>
      

      users.html.twig

      {% extends 'layout.html.twig' %}
      
      {% block pageTitle %}Users{% endblock %}
      
      {% block pageBody %}
          <div id="wrapper">
              <div id="page-wrapper">
                  (...)
              </div>
          </div>
      {% endblock %}
      

      demo

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-05-19
        • 1970-01-01
        • 1970-01-01
        • 2013-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多