1

在 Kohana 2 中,控制器函数可以在其中包含参数,而无需为其编写路由。

url: /some/arg/is/here

在控制器中,我可以简单地拥有四个任意名称的参数,并且可以从函数内自动访问它们。

public function myFunc($a, $b, $c, $d) {}

但是在 Kohana 3 中,我必须为我想要的路线类型写一条路线。有没有我可以使用的路线,让我urlargs彼此相处得很好,而我每次编写新函数时都不必做额外的工作?

4

2 回答 2

1

所有参数都必须在路由中指定,但可以设为可选。在这种情况下,您可能希望将默认路由更改为...

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 个。

于 2013-10-30T09:41:00.993 回答
1

仅供参考 Kohana 3 是从头开始完全重写的。Kohana 2 和 3 可以被认为是两个独立的框架。

至于路线,您可能想使用一条包罗万象的路线。在这里查看Kohana 3.3 包罗万象的路线

我建议不要使用它,因为它失去了 KO3 路由灵活性的全部目的。

此外,自 KO 3.1(我认为)以来,您不能再将参数作为方法参数访问。而是使用Request该类来检索参数,如下所示:或者如果您在控制器外部使用它,则$this->request->param('abc');实例化该类,如下所示RequestRequest::current()->param('abc');

于 2013-07-07T13:16:56.917 回答