2013-04-20 3 views
0

Есть ли способ, по которому я могу по умолчанию использовать маршрут action_index и не указывать его в URL-адресе?Kohana: Omit action from url

ie.

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

Чтобы использовать, что мне нужно указать /users/index/1234

Но я хотел бы использовать /users/1234

я пытался вынимая действие от маршрута :: набор(), но я в конечном итоге с 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> параметров от моего маршрут по умолчанию 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

+0

Обновлен мой ответ. –

+0

Большое спасибо! Теперь это работает – iamjonesy