2013-04-01 46 views
0

我想要做的事很容易,但我還沒有找到解決方案。在我的應用程序中,我想按主題,語言和範圍來組織所有模板。爲此,需要爲正確的模板構建和搜索多個路徑。Twig/Symfony2:搜索多個模板目錄?

例如Acme:Default:editAction被請求,Acme:Default:edit.html.twig模板應該默認加載。

APP_PATH/src/Acme/DefaultBundle/Resources/views/Default/edit.html.twig 

現在我想改變這種行爲,並在給定的順序中搜索該模板的多個路徑。

1. VIEWS_PATH/%theme%/%lang%/%scope%/Default/edit.html.twig 
2. VIEWS_PATH/%theme%/%lang%/Default/edit.html.twig 
3. VIEWS_PATH/%theme%/Default/edit.html.twig 
4. VIEWS_PATH/Default/edit.html.twig 

最簡單的方法是什麼?在配置或事件監聽器中的某個點添加路徑或覆蓋TemplateLoaderClass?

請不要推薦任何Bundles。我只是想了解Symfony(2.1)/ Twig如何在這一點上工作。

回答

0

綁定以Templating服務作爲參數的事件偵聽器,並修改kernel.view事件的模板名稱。

有關此代碼示例,請參見https://stackoverflow.com/a/12403233/1649758

+0

我應該再次解析路徑並重建它?有沒有辦法將子路徑注入現有的邏輯? – Daniel

+0

不是我找到的。 –