Kohana路由与可选参数不匹配

时间:2013-05-10 14:02:52

标签: php routing routes kohana kohana-3

我无法获得带有可选参数的路由来解析最后的ID。这是我的路线:

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

1 个答案:

答案 0 :(得分:0)

它不起作用,因为action param具有全能正则表达式,尝试将其更改为[a-z0-9]+

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