Twig 如何在Phalcon中使用细枝实现继承?

Twig 如何在Phalcon中使用细枝实现继承?,twig,phalcon,Twig,Phalcon,嗯。我使用Twig作为视图引擎,Phalcon版本为0.8 我从这个存储库中获得的适配器代码:I make​​这段代码中的一个小修改,因为我通过composer包含了细枝。我不会描述这些修改,因为它们并不重要 所以。我的目录视图结构非常简单: app - views --- index.twig --- about ---- index.twig 视图源/index.twig: <html> <head> <title>Phalcon PHP Fra

嗯。我使用Twig作为视图引擎,Phalcon版本为0.8

我从这个存储库中获得的适配器代码:I make​​这段代码中的一个小修改,因为我通过composer包含了细枝。我不会描述这些修改,因为它们并不重要

所以。我的目录视图结构非常简单:

app
- views
--- index.twig
--- about
---- index.twig
视图源/index.twig:

<html>
<head>
    <title>Phalcon PHP Framework</title>
</head>
<body>
    {% block content 'This is main page' %}
</body>
</html>
{% extends "index.twig" %}

{% block content %}
    This is About page
{% endblock %}
This is main page
<h1>Title</h1>
{{ content|raw }}
另外,我还有一个控制器About(AboutController.php)和一个方法

public function indexAction()
它是空的

嗯。现在。当我请求页面/关于时,我希望看到如下内容:

This is About page
但我仍然看到views/index.twig的内容:

<html>
<head>
    <title>Phalcon PHP Framework</title>
</head>
<body>
    {% block content 'This is main page' %}
</body>
</html>
{% extends "index.twig" %}

{% block content %}
    This is About page
{% endblock %}
This is main page
<h1>Title</h1>
{{ content|raw }}
我觉得有点奇怪。我重新分配块“内容”

我在模板views/about/index.twig中进行了一些检查,从块中添加了额外的字符,我收到了来自twig的错误:

A template that extends another one cannot have a body in "about/index.twig"
所以。有什么想法吗


另外,我想我应该调用tpl views/index.twig方法{{{content()}},但是twig对这个方法一无所知。

问题是我没有足够的能力阅读文档

为了解决我的问题,我必须在视图组件中使用模板的渲染级别:

要使用Twig中的内置导出功能并使用此引擎的强大继承机制, 我们必须设置渲染级别:

$view->setRenderLevel(Phalcon\Mvc\View::LEVEL_ACTION_VIEW); 
在这种情况下,引擎将立即处理模板操作的内容。

使用{{content | raw}

Index.twig:

<html>
<head>
    <title>Phalcon PHP Framework</title>
</head>
<body>
    {% block content 'This is main page' %}
</body>
</html>
{% extends "index.twig" %}

{% block content %}
    This is About page
{% endblock %}
This is main page
<h1>Title</h1>
{{ content|raw }}
标题
{{content | raw}
行动视图:

<h2>Title 2</h2>
标题2

出于好奇,为什么不使用Volt?与Twig的语法完全相同,它是Phalcon的原生语法。原因之一是我不理解在模板中实现函数{content()}}的目的是为了显示子对象的内容。也许我不完全理解这种能力,但我认为这是胡说八道。