Volt - 模板扩展

时间:2016-12-30 10:29:36

标签: php phalcon templating volt

我使用Phalcon PHP和Volt模板引擎,我遇到了模板扩展的问题。这就是我想要做的事情:

基本模板:

// index.volt

<!DOCTYPE html>
<head> [...] </head>
<body>
  <div>
    [...]
    <div class="row">

      <div class="col-sm-2"> {% block leftBlock %}{% endblock %} </div>

      <div class="col-sm-8"> 
        {% block content %} {{ content() }} {% endblock %} 
      </div>

      <div class="col-sm-2"> {% block rightBlock %}{% endblock %} </div>
    </div>
  </div>

[...]

然后是控制器的模板:

// layouts/controller.volt

{% block leftBlock %}
  {{ partial("menus/fooMenu") }}
{% endblock %}

{% block content %}
  {{ content() }}
{% endblock %}

我想用菜单替换leftBlock中的内容,但是当我这样做时,我在内容块中获得了菜单。我之所以知道它是因为使用了content()方法,但我无法找到另一种使用模板的方法。

当我将{% extends "index.volt" %}放在controller.volt的开头时,我在控制器视图中获得了整个内容形式index.volt,包括偶数头标记。

以这种方式扩展模板的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

我担心你会混淆layouttemplate概念。这在phalcon中略有不同。

您应该修改https://docs.phalconphp.com/ru/latest/reference/views.html#rendering-levels页面。特别是渲染级别章来实现你想要的。