我在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吗?怎么样? 或者,还有另一种选择(如果存在)?
答案 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');
希望这有助于其他人。