2010-05-08 64 views

回答

6

在你的控制器:

public function init() { 
    $this->getHelper('viewRenderer')->setViewSuffix('js'); 
} 

如果您需要將此應用到內的所有控制器模塊,你應該把它放在一個用於該模塊的抽象控制器類中,並讓每個控制器都在該模塊中模塊從該抽象類繼承。

理論上你可以把它放在模塊的引導程序中,但是它會將每個請求的視圖後綴設置爲'js',即使是那些最終沒有路由到該特定模塊的視圖後綴。這是因爲每個模塊的引導程序都是針對每個請求執行的,而不管調度程序選擇哪個模塊。

但是,控制器的init()函數只有在選擇模塊進行分派時纔會執行。

+0

在該模塊中的每個控制器中?沒辦法做一次? – Alexar 2010-05-08 16:33:37

+0

我在我的回答中添加了一個blurb,如何將它添加到每個控制器。希望有所幫助。 – awgy 2010-05-08 17:03:20

+0

要在模塊級別執行某些操作,我通常使用帶有routeShutdown()方法的frontcontroller插件(http://devzone.zend.com/article/3372)。這些優秀的例子是佈局切換器(如http://www.atirjavid.com/web-development/8-zend-framework-tutorials/4-a-modular-directory-structure-quickstart-module-switcher-front-controller -plugin.html)。 – 2010-05-08 17:29:53