2013-04-20 19 views
0

有沒有什麼辦法可以默認一條路徑來使用action_index,而不必在url中指定它?Kohana:從網址中省略動作

即。

Route::set('user_profile','(<controller>(/<action>(/<id>)))') 
    ->defaults(array(
     'directory' => 'public', 
     'controller' => 'user', 
     'action'  => 'index', 
    )); 

要使用,我需要指定/users/index/1234

但我想使用/users/1234

我試圖取出從Route)行動::集(但我結束了一個404頁。

UPDATE

現在我已經加入這條路線(最上面的一個)我的默認路由似乎並沒有現在的工作

Route::set('user_profile','(<controller>(/<id>))') 
->defaults(array(
    'directory' => 'public', 
    'controller' => 'users', // Note I changed it to plural to match 'users/*' from your url 
    'action'  => 'index', 
)); 

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

回答

2

這是從省略<action> PARAM一樣簡單該URL,但仍保持默認值:

Route::set('user_profile','(<controller>(/<id>))') 
    ->defaults(array(
     'directory' => 'public', 
     'controller' => 'users', // Note I changed it to plural to match 'users/*' from your url 
     'action'  => 'index', 
    )); 

請注意,除非您有其他路由rrides此行爲,您的user控制器將只能執行index操作。


編輯

如果您users_profile路由只處理/users路徑,那麼你可以將其設置在明確的路線:

Route::set('user_profile','users(/<id>)') 
    ->defaults(array(
     'directory' => 'public', 
     'controller' => 'users', // Note I changed it to plural to match 'users/*' from your url 
     'action'  => 'index', 
    )); 

這應該解決衝突的途徑。

+0

這確實有效,但它似乎與另一條路線相沖突。我已更新我的問題 – iamjonesy 2013-04-22 19:12:46

+0

更新了我的答案。 – 2013-04-23 16:25:39

+0

非常感謝!現在可以使用 – iamjonesy 2013-04-23 17:40:43