Kohana路由:无法访问路由参数


Kohana routing: can't access route parameters

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

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

根据文档,将控制器和动作连接到这样一个简单的路由是很容易的,但是路由参数(在本例中是id)在控制器中永远无法访问。

例如,我有一个路由:

/user/信息/123

处理该路由的控制器被成功调用:

    public function action_info()
{
    $id = $this->request->param('id');
    echo "id=" . $id; //nothing
    echo "is_null=" . is_null($this->request->param('id')); //1
}

但是$this->request->param('id')总是被设置为null。

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

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

所以这不是问题,因为这是获取请求参数的正确方式。:)

你试过吗?

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