2011-07-14 25 views
0

我使用gii爲Yii框架創建了兩個模塊。每個模塊創建一個名爲「DefaultController」的默認控制器類。DefaultController。命名的問題

但我認爲它錯了,我相信它應該是「Module1_DefaultController」和「Module2_DefaultController」像Zend框架。

這是真的嗎? 如果是這樣,如何重命名控制器?當你調用yoursite/yourmodule

回答

1

與類DefaultController的文件不會被Yii除非你請該模塊的一些行動包括在內。這將防止重複的類名稱錯誤(我猜你懷疑)因爲沒有兩個模塊的操作可以在同一時間被調用(這是由設計)

+0

當我調用另一個模塊的動作時,它將導致重複的類名錯誤。這正是我的問題。 –

+0

也許你可以解釋爲什麼你需要在另一個模塊*(B)*的動作中調用來自模塊*(A)*的動作?或者你可以改變一個控制器類的名字*(不要忘記改變文件名)*來自其中一個模塊。請記住,這會將更改後的控制器的路由從「/default」更改爲「/」。 –

+0

例如我需要在主頁中呈現最新消息和最新產品,我應該導入module1/defaultController和module2/defaultController以使用兩個動作latestnews和最新產品 –

1

DefaultController只會被調用。你不需要改變它的名字來使它工作。

不重命名控制器的原因是要yoursite/yourmodule當你不實際調用控制器本身。你將進入模塊根目錄並獲取默認控制器。這就是爲什麼你需要定義module inside config:讓Yii知道它需要尋找一個模塊而不是控制器。

當然,你可以在這個模塊中創建更多的控制器。

0

被Yii裝箱的DefaultController是沒有錯的,因爲當你從另一個模塊或類導入將導入它喜歡的包在Java中。它應該是這樣的

Yii::import('application.modules.module1.controllers.DefaultController'); 

我相信Yii的是在packageclass設計類似於Java。