[英]Inherit dynamic template in Phalcon Volt
我需要加载一个页面,该页面将被“插入”到模板中-在我阅读该页面时,Volt的Template Inheritance应该可以解决问题,并且确实可以。 如示例中所示,硬编码值可以正常工作-以下示例有效:
<!-- Template -->
<div id="site_content">
{% block test %}
{% endblock %}
</div>
以及继承模板的页面:
{% extends "../../templates/de/index.volt" %}
{% block test %}
{{ content() }} {# this is a registered volt function that outputs the generated content #}
{% endblock %}
但是,同一页面可能需要继承不同的模板,并且必须在运行时确定模板,因此必须动态生成模板的名称。 我想到了两个选择:
注册另一个函数以生成完整的字符串(例如{%扩展“ ../../templates/de/index.volt”%}),然后对其进行编译,例如
$ compiler-> addFunction('get_template',函数($ resolvedArgs,$ exprArgs)使用($ volt){返回$ volt-> getCompiler()-> compileString('{%扩展“ ../../templates/de /index.volt“%}');});
然后在页面中使用该功能,例如
{{ get_template() }}
{% block test %}
{{ content() }}
{% endblock %}
但是,使用该方法不会解析页面内容(例如,未显示已注册的content()函数返回的内容)。 我也愿意接受其他解决方案(对于性能问题,使用Twig代替Volt只是万不得已),关于我做错事的建议或有关该主题的有用文章的指南。 提前致谢!
尝试按照Phalcon文档中的说明使用部分: 使用部分
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.