Php 科哈纳路由:can';t访问路由参数

Php 科哈纳路由:can';t访问路由参数,php,url-routing,kohana,Php,Url Routing,Kohana,在Kohana 3.2中,我使用默认路由进行简单的控制器/动作/id设置: Route::set('default', '(<controller>(/<action>(/<id>)))') ->defaults(array( 'controller' => 'home', 'action' => 'index', 'id' => '0', )); 但是$this->request->p

在Kohana 3.2中,我使用默认路由进行简单的控制器/动作/id设置:

Route::set('default', '(<controller>(/<action>(/<id>)))')
->defaults(array(
    'controller' => 'home',
    'action'     => 'index',
    'id'         => '0',
));
但是$this->request->param('id')总是设置为null

这似乎是我能想到的最简单的例子,我在这里做错了什么?

你试过这个吗

Route::set('default', '(<controller>(/<action>(/<id>)))')
  ->defaults(array(
    'controller' => 'home',
    'action'     => 'index',
    'id'         => '\d+',
));
Route::set('default','(/(/))'))
->默认值(数组)(
“控制器”=>“主控制器”,
“操作”=>“索引”,
'id'=>'\d+',
));

结果证明,我正在与扩展Kohana合作的公司使用了一个request->param()函数来做一些事情,但没有意识到这已经是Kohana中的一个函数,这破坏了内置功能。使用内置的Kohana请求函数可以解决此问题


因此,这不是问题,因为这毕竟是获取请求参数的正确方法。:)

为什么你的代码说它应该输入action
index
,但它正在运行
action\u info
?这一部分并不重要,只是说默认操作(如果没有指定)将是index,但是当我点击/info/url时,Kohana会路由到该操作。我尝试了这个,但结果相同。据我所知,Route::set的第二个参数可以用来为routes设置regex,但我目前没有这样做,我认为这对defaults数组不起作用。
Route::set('default', '(<controller>(/<action>(/<id>)))')
  ->defaults(array(
    'controller' => 'home',
    'action'     => 'index',
    'id'         => '\d+',
));