我使用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,包括偶数头标记。
以这种方式扩展模板的正确方法是什么?
答案 0 :(得分:0)
我担心你会混淆layout
和template
概念。这在phalcon中略有不同。
您应该修改https://docs.phalconphp.com/ru/latest/reference/views.html#rendering-levels页面。特别是渲染级别章来实现你想要的。