2013-05-10 4 views
0

Я не могу получить маршрут с необязательным параметром для синтаксического анализа ID в конце. Вот мой маршрут:Маршрутизация Kohana не соответствует необязательному параметру

Route::set('default', '<action>(/<id>)', array(
    'action' => '.*', 
    'id' => '\d+' 
))->defaults(array(
    'controller' => 'MediaLibrary', 
    'action' => 'index' 
)); 

Когда я смотрю на Params, я получаю:

array(2) (
    "action" => string(7) "test/91" 
    "controller" => string(12) "MediaLibrary" 
) 

Однако если изменить маршрут <action>/(<id>) это работает. Id будет анализироваться без проблем и действий изменится на test вместо test/91

ответ

0

Это не работает, потому что action паров имеют уловы все регулярное выражение, попробуйте изменить его на [a-z0-9]+.

Route::set('default', '<action>(/<id>)', 
    array(
     'action' => '[a-z0-9]+', 
     'id'  => '\d+' 
    )) 
    ->defaults(array(
     'controller' => 'MediaLibrary', 
     'action'  => 'index' 
    )); 
+0

Я вижу. спасибо – realshadow