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

时间:2013-05-08 21:05:33

标签: php url-routing kohana

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

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

根据文档,将控制器和操作连接到这样的简单路径非常容易,但路由器参数(在本例中为id)永远不会在控制器中访问。

例如,我有一条路线:

/用户/信息/ 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-&gt; request-&gt; param('id')始终设置为null。

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

2 个答案:

答案 0 :(得分:2)

原来我正在使用扩展Kohana的公司使用request-&gt; param()函数来做某事而没有意识到这已经是Kohana中的一个函数,这打破了内置功能。使用内置的Kohana请求函数可以解决这个问题。

因此,事实证明这是一个非问题,因为这是获取请求参数的正确方法。 :)

答案 1 :(得分:1)

你试过这个吗?

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