Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Routing 通过科哈纳的路线配置传递额外的参数_Routing_Kohana - Fatal编程技术网

Routing 通过科哈纳的路线配置传递额外的参数

Routing 通过科哈纳的路线配置传递额外的参数,routing,kohana,Routing,Kohana,在Kohana中是否有向控制器动作传递额外参数的机制 例如: Kohana路由文档似乎没有讨论这一点。但是,有没有办法让它发挥作用。我想你可以通过这种方式达到你喜欢的任何水平: $config['article/([0-9]+)'] = 'news/show/more/more/more/etc/$1'; 或者,如果您希望额外的参数是$\u GETable变量,那么: $config['article/([0-9]+)'] = 'news/show/$1?param1=some_stuff&a

在Kohana中是否有向控制器动作传递额外参数的机制

例如:


Kohana路由文档似乎没有讨论这一点。但是,有没有办法让它发挥作用。

我想你可以通过这种方式达到你喜欢的任何水平:

$config['article/([0-9]+)'] = 'news/show/more/more/more/etc/$1';

或者,如果您希望额外的参数是$\u GETable变量,那么:

$config['article/([0-9]+)'] = 'news/show/$1?param1=some_stuff&param2=another_stuff';

路由重写URL,这样您就可以在新URL中包含您想要的任何数据,但不能按照您建议的方式。关键是要理解您只能输入URL

这是一种方法:

$config['article/([0-9]+)'] = 'news/show/$1/some_stuff';
然后,您可以捕获新闻控制器的
show
方法中的参数

另请参见有关的Kohana文档


如果您需要更复杂的内容,您可以创建更复杂的URL或在URL中序列化
urlencode
数据。

这是自动发生的,您不需要在路由配置中执行任何操作,只需执行此操作即可

class Controller_News extends Controller {
     public function action_show($param1, $param2 = "can have default value too"){
          // can be called with 'yoursite.com/news/show/param1/param2'
     }
}

这在Kohana 3中已经发生了变化,您必须更改bootstrap.php文件才能正常工作

来自非官方维基

带2个参数的基本路线
与KO2不同,引导中的KO3路由默认值不会处理2个或更多参数,如example.com////
在bootsrtap.php文件中

  Route::set('default', '(<controller>(/<action>(/<id1>(/<id2>))))')
Route::set('default','(/(/(/))))
Basic Route with 2 parameters

Unlike KO2, KO3 Routing default in your bootstrap does not handle 2 or more parameters like example.com/<controller>/<action>/<param1>/<param2>
  Route::set('default', '(<controller>(/<action>(/<id1>(/<id2>))))')