Twig 如何在Phalcon中使用细枝实现继承?
嗯。我使用Twig作为视图引擎,Phalcon版本为0.8 我从这个存储库中获得的适配器代码:I make这段代码中的一个小修改,因为我通过composer包含了细枝。我不会描述这些修改,因为它们并不重要 所以。我的目录视图结构非常简单: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
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()}}的目的是为了显示子对象的内容。也许我不完全理解这种能力,但我认为这是胡说八道。