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