2013-04-20 130 views
3

我想要做這樣的事情:嫩枝過濾器包含的模板

{{ include("tpl.html")|f }} 

但是,這似乎並沒有工作,它只是印刷tpl.html不進行任何過濾,然後我想:

{% filter f %} 
    {% include "tpl.html" %} 
{% endfilter %} 

它的工作。我只是想知道,爲什麼我不能使用較短的一個?我誤解了什麼嗎? 在此先感謝。

+0

樹枝文檔,你有沒有發現一個較短的方式做到這一點?或者正在使用'{%filter%}'仍然是最好的方法? – mpen 2015-10-07 16:43:06

回答

3

對不起,我是這麼長時間回來:-)

的事實是,include功能模板上寫道。

如果你這樣做:

{% set s = include('FuzHomeBundle:Default:test.html.twig') %} 

這是不應該顯示的東西,你會得到文件輸出的內容,無論如何,和s變量將被設置爲null

如果你這樣做,而不是:

{% filter upper %} 
{% include 'FuzHomeBundle:Default:test.html.twig' %} 
{% endfilter %} 

{% filter upper %} 
{{ include('FuzHomeBundle:Default:test.html.twig' }} 
{% endfilter %} 

filter標籤將編譯一些代碼來控制輸出緩衝器。

+0

不,我想申請減價過濾器沒有整個輸出。或者這聽起來很愚蠢?無論如何,我想說,那不是逃避,而是任何過濾器。 – 2013-04-20 15:46:51

4

要在一段代碼應用過濾器,你有過濾器標籤來包裝它:

{% filter f %} 
    ... 
{% endfilter %} 

什麼您最初嘗試是過濾這枝由雙括號中定義的變量:

{{ variable name|filter }} 

閱讀更多檢查出過濾器here

+0

'{{}}'接受一個表達式,不一定是一個變量。在OP的情況下,過濾函數調用是表達式,這裏沒有錯誤。 – 2013-04-23 11:37:21