将几乎所有包含数字的URL重定向到一个函数 - Kohana3框架

时间:2012-12-15 14:55:47

标签: php kohana url-routing

我在Kohana3框架的控制器中有一个动作,一切正常。

当我在浏览器中输入网址myconroller/myaction/5时,它会转到正确的action_myaction(),而参与5可以作为$this->request->param('id);

进行访问

我的问题是:如何捕获所有类似的网址 myconroller/myaction-XXX/5(XXX是1到999之间的任意数字) 转到action_myaction()

如果我只有几个这种类型的URL,我会创建几个通过传递XXX作为参数来调用函数的动作。 但是,如果我有多达999个可能的有效网址呢?

我应该以正确的方式修改bootstrap.php吗?怎么样? 或者,还有另一种选择(如果存在)?

1 个答案:

答案 0 :(得分:1)

以下是我的问题的答案。在默认路由之前的bootstrap.php中添加路由规则:

Route::set('xxxroute', 'myconroller/myaction-<param1>/<id>'
array(
    'param1' =>'\d+',
    'id' =>'\d+'
))
->defaults(array(
    'controller' =>'myconroller',
    'action' =>'myaction',
));

这种方式param1是一个数字(否则它会转到默认路由),它会直接转到myaction行动。

参数可以在那里找到:

$id=$this->request->param('id');
$param1=$this->request->param('param1');

希望这有助于其他人。