2011-09-07 24 views
2

試圖學習來自Asp.Net MVC的Kohana 3.在MVC中,我習慣於默認路由(非常類似於Kohana中的默認路由):不瞭解Kohana php框架中的路由

默認路由匹配任何這些:

/ 
/Home 
/Home/Index 

我希望它是在Kohana中是相同的,但似乎一切匹配是這樣的:

/ 

這裏是我的設置在bootstrap.php中:

Kohana::init(array(
    'base_url' => '/kohana', 
       'index_file' => FALSE 
)); 

Route::set('default', '(<controller>(/<action>(/<id>)))') 
    ->defaults(array(
     'controller' => 'home', 
     'action'  => 'index', 
    )); 

所以,如果我在地址欄輸入localhost/kohana我可以通過控制器home和行動指數(action_index)稱爲視圖。但是,如果我輸入localhost/kohana/home/index,則會出現錯誤,指出該對象不存在。

這是爲什麼?我不應該能夠在url中輸入控制器和操作並獲得正確的路由嗎?所以基本上我不知道如何輸入網址以採取行動方法...

對不起,如果這是一個愚蠢的新手問題,但我無法弄清楚谷歌搜索和看Kohana文檔...我已經被Asp.Net MVC路由一直工作的事實寵壞了,所以我從來沒有真正瞭解它...

+0

默認情況下,您的路線應該匹配,所以很難說出了什麼問題。你有沒有其他路由規則? – matino

+0

不,我沒有定義任何其他路線,除了將默認控制器更改爲主頁而不是歡迎頁面外,正如您在示例中所看到的。沒有其他路線添加...就像我說的,localhost/kohana工程,但不是localhost/kohana/home/index – Anders

+0

您是否使用RewriteBase/kohana /修改了.htaccess? – matino

回答

2

重命名example.htaccess到.htaccess,打開它並更改行RewriteBase /RewriteBase /kohana/。 Windows資源管理器可能不允許沒有名稱的文件,因此您必須使用其他文件管理器(例如Total Commander)。

+0

或只是記事本:) – egis

+0

@egis - 真正的:)我從來沒有打擾檢查,因爲我使用TC :) – matino

+0

太好了,謝謝它的工作!我只是用命令行btw :-)非常感謝你,最後......! – Anders