我使用gii爲Yii框架創建了兩個模塊。每個模塊創建一個名爲「DefaultController」的默認控制器類。DefaultController。命名的問題
但我認爲它錯了,我相信它應該是「Module1_DefaultController」和「Module2_DefaultController」像Zend框架。
這是真的嗎? 如果是這樣,如何重命名控制器?當你調用yoursite/yourmodule
我使用gii爲Yii框架創建了兩個模塊。每個模塊創建一個名爲「DefaultController」的默認控制器類。DefaultController。命名的問題
但我認爲它錯了,我相信它應該是「Module1_DefaultController」和「Module2_DefaultController」像Zend框架。
這是真的嗎? 如果是這樣,如何重命名控制器?當你調用yoursite/yourmodule
與類DefaultController的文件不會被Yii除非你請該模塊的一些行動包括在內。這將防止重複的類名稱錯誤(我猜你懷疑)因爲沒有兩個模塊的操作可以在同一時間被調用(這是由設計)。
DefaultController
只會被調用。你不需要改變它的名字來使它工作。
不重命名控制器的原因是要yoursite/yourmodule當你不實際調用控制器本身。你將進入模塊根目錄並獲取默認控制器。這就是爲什麼你需要定義module inside config:讓Yii知道它需要尋找一個模塊而不是控制器。
當然,你可以在這個模塊中創建更多的控制器。
被Yii裝箱的DefaultController是沒有錯的,因爲當你從另一個模塊或類導入將導入它喜歡的包在Java中。它應該是這樣的
Yii::import('application.modules.module1.controllers.DefaultController');
我相信Yii的是在package
和class
設計類似於Java。
當我調用另一個模塊的動作時,它將導致重複的類名錯誤。這正是我的問題。 –
也許你可以解釋爲什麼你需要在另一個模塊*(B)*的動作中調用來自模塊*(A)*的動作?或者你可以改變一個控制器類的名字*(不要忘記改變文件名)*來自其中一個模塊。請記住,這會將更改後的控制器的路由從「/default」更改爲「/」。 –
例如我需要在主頁中呈現最新消息和最新產品,我應該導入module1/defaultController和module2/defaultController以使用兩個動作latestnews和最新產品 –