0

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

当我在myconroller/myaction/5浏览器中输入 url 时,它会转到正确的action_myaction(),并且 param5可以访问为$this->request->param('id);

我的问题是:如何捕获所有看起来像 myconroller/myaction-XXX/5 (XXX 是从 1 到 999 的任何数字)要访问的URL action_myaction()

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

我应该以适当的方式修改 bootstrap.php 吗?如何?或者,还有另一种选择(如果存在)?

4

1 回答 1

1

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

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

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

可以通过以下方式找到参数:

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

希望这对其他人有帮助。

于 2012-12-15T18:36:46.083 回答