在Kohana 2中,控制器函数可以在其中包含参数,而无需为其编写路径。
url: /some/arg/is/here
在控制器中,我可以简单地使用任意名称的四个args,并且可以从函数中自动访问它们。
public function myFunc($a, $b, $c, $d) {}
但是在Kohana 3中,我必须为我想要的路线类型写一条路线。有没有一条我可以使用的路线可以让我的url
和args
相互配合,每次我写一个新功能时都不需要做额外的工作?
答案 0 :(得分:1)
FYI Kohana 3从头开始完全重写。 Kohana 2和3可以被认为是两个独立的框架。
至于路线,您可能想要使用全能路线。请在此处查看Kohana 3.3 catch-all route
我建议不要使用它,因为它失去了KO3路由灵活性的全部目的。
此外,由于KO 3.1(我认为),你不能再将参数作为方法参数访问。而是使用Request
类来检索如下所示的参数:$this->request->param('abc');
或者如果您在控制器之外使用Request
类,则实例化Request::current()->param('abc');
类{{1}}
答案 1 :(得分:1)
必须在路线中指定所有参数,但可以使其成为可选参数。在这种情况下,您可能希望将默认路由更改为...
Route::set('default', '(<controller>(/<action>(/<arg1>(/<arg2>(/<arg3>(/<arg4>))))))');
然后,您可以使用“request”...
来引用args$this->request->param('arg1');
$this->request->param('arg2');
$this->request->param('arg3');
$this->request->param('arg4');
如果需要,你显然可以超过4个。