2013-03-26 82 views
2

我使用HMVC並創建了一個名爲user的模塊。在modules/user/config目錄中,我有routes.php,使用與application/config/routes.php相同的格式。CodeIgniter與Wiredesignz HMVC路由

在的application/config/routes.php文件我有以下途徑:

$route['login'] = 'user/login';

這個偉大的工程,BUIT當我把它移動到應用程序/模塊/用戶/配置/ routes.php文件,它不起作用。我收到一個404錯誤。

根據HMVC文檔(https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc),你必須創建路線如下:

$route['module_name'] = 'controller_name';

這意味着我將不得不做這樣的:

$route['user'] = 'user';

這導致404,但是,即使我沒有得到404,這也不是我想到的。我仍然想讓我的路由工作,因爲/登錄到用戶/登錄。

任何想法將不勝感激!

謝謝!

+0

任何人在這裏有任何想法嗎? – 2013-03-27 20:55:21

回答

3

我和你有同樣的確切問題,不幸的是Wiredesignz創建了擴展的方式,它需要路徑從模塊名稱本身開始,如果你把路由文件放入模塊本身。如果路徑文件放在模塊中,這是唯一的方法。有了這個說法,它已經知道模塊的名稱,所以你只需要指定你想要的路由器的控制器和方法。因此,在你的模塊配置目錄裏面的routes.php文件文件,如果你把這個:

$route['yourmodule/some-route'] = "yourcontroller/yourmethod"; 

或者換句話說:

$route['user'] = 'user/login'; 

這將工作我相信。不過,我仍然想要比這更多。我希望能夠使用可能有或沒有模塊名稱的路由。由於這一點,我不得不延長模塊要做到這一點,你可以找到我在這裏做的工作,如果這有助於:

https://github.com/Bigwebmaster/codeigniter-modular-extensions-hmvc

這則允許你使用你想如路線:

$route['login'] = 'user/login'; 

即使將該routes.php放置在模塊的config目錄中。

+0

謝謝@Bigwebmaster。我會研究你的HMVC分支,看看我能否在我的網站上運行它。會很棒。一旦我有機會檢查出來,如果有需要,我會立即投入/接受。感謝你的回答! – 2013-04-10 15:05:29

+0

輝煌,感謝,@Bigwebmaster,它也適用於我100%。祝你有美好的一天! – 2013-04-11 14:15:41

+0

嗨,@Bigwebmaster它運行良好,但有些東西你可能想看看:如果你想調用一個沒有鏈接到特定路由的控制器/函數,它會給你一個404錯誤。您可能需要調用在某個階段或某個階段未綁定到路由的函數。 – 2013-04-11 15:21:29