0

最初在 Kohana 3 中,您可以通过 URL 传递控制器操作参数/参数,如下所示:

http:/website/controller/actionname/param1/param2/.../paramX

并通过简单地定义动作来处理它,如下所示:

public action_actionname($params)
{
   $params_array = explode("/", $params); 
   //you can now use $params_array[0], $params_array[1], ...
}

现在看来,从 v3.1 开始,他们决定弃用此功能(这里是链接),它应该在 v3.2 中被淘汰

他们似乎希望您改用Route::Set()request->param()方法。这是否意味着每次在控制器中定义方法/动作时,都必须在应用程序的其他位置为每个参数定义单独的路由?谁能简单地向我解释一下这是如何工作的。只是为了简单地调用一个函数而完成所有这些似乎有很多不必要的“麻烦”。

4

1 回答 1

3

也许您应该考虑在路由中使用正则表达式参数来覆盖默认匹配行为...我通常使用它来捕获一个 KO3“参数”中的多个 URL 参数。例子:

Route::set('route1', '<controller>/<action>(/<param_list>)', array('param_list'=>'.*'))
->defaults(array(
    'controller'   => 'my_default_controller',
    'action'       => 'my_default_index'
));

现在在您的控制器中,$this->request->param("param_list")将等于与正则表达式匹配的任何内容.*,这意味着您可以像希望的那样捕获 URL 的其余部分,使用斜杠和所有内容!

于 2011-03-31T22:05:23.630 回答