[英]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.