我是Kohana的新手,但現在已閱讀用戶指南約兩週。我在v3.3.1上構建了一個巨大的應用程序,它將有許多不同的模塊(即駐留在模塊目錄中)。我正在努力讓路線按照我需要的方式工作。Kohana 3個別模塊的路徑
首先,值得一提的是,我已閱讀了關於路由,模塊,引導程序等的用戶指南。我將route :: set放在模塊內的init.php文件中,因此它在「 bootstrap.php文件中的「default」選項。這是我有...
目錄:
應用>類>控制器>的welcome.php
模塊>模塊1>類>控制器> Home.php
路線
在module1 init.php文件中:
Route::set('module1', 'module1(/<controller>(/<action>))')
->defaults(array(
'controller' => 'Home',
'action' => 'index',
));
在bootstrap.php中的文件:
Route::set('default', '(<controller>(/<action>(/<id>)))')
->defaults(array(
'controller' => 'welcome',
'action' => 'index',
));
當我去到localhost/index.php文件/模塊1 /它不運行模塊的主控制器。
當我去localhost/index.php它確實在應用程序目錄中運行歡迎控制器。
但是,如果我去localhost/index.php/home它也運行該模塊的主控制器。我不希望它這樣做。我只希望在URI爲localhost要運行的模塊控制器/ index.php文件/模塊1/控制器
我知道這是默認路由拿起模塊的控制器,但我不知道如何停止它從做到這一點,或者即使這是可能的!
如果有人以這種方式使用模塊的經驗,請你能幫助我嗎?你的時間非常感謝。
非常感謝, 史蒂夫
非常感謝你馬努拉斯,這按預期工作。爲了克服使用相同的控制器名稱,我正在考慮在模塊名稱前加上任何模塊控制器名稱。例如,主應用程序控制器可以被稱爲「歡迎」和稱爲「Module1_Welcome」的模塊。你會推薦這種方式,還是有更好的方法? – SigmaSteve
這是一個很好的方法。我認爲大部分都是這樣做的。你也可以在模塊控制器文件夾中使用目錄,但這取決於你。選擇你喜歡的。 – Manuras
玩了一段時間後,我選擇了使用目錄。在模塊名稱前加上控制器名稱看起來很亂。我在控制器文件夾內創建了一個module1目錄,現在我的模塊路由看起來像Route :: set('module1','module1(/(/ (/ )))'',默認'directory'=> 「模塊1」。完美地工作,並應該捕捉每個模塊的所有請求。非常感謝你的幫助。 –
SigmaSteve