Kohana 3获得当前的控制器/动作/参数

时间:2010-05-04 08:49:33

标签: php kohana kohana-3

在Kohana 2中,你很容易得到这样的信息:

echo router::$controller;
echo router::$method;
echo router::$arguments[0-x];

任何想法在Kohana 3中如何运作?

提前致谢!

3 个答案:

答案 0 :(得分:32)

从控制器内部:

$this->request->controller

$this->request->action

$this->request->param('paramname')

与K2中的K2参数不同,您可以通过在路线中定义的kays来访问。

以此网址为例:

Route::set('default', '(<controller>(/<action>(/<id>)))')    
    ->defaults(array('controller' => 'welcome', 'action' => 'index')); 

要访问您要调用的“id”参数

$this->request->param('id')

您无法从param()方法访问控制器/操作参数。

注意,您也可以使用Request::instance()来获取全局(或“主”)请求实例。

有关详细信息,请参阅K3 guide

答案 1 :(得分:25)

user guide

更新 Kohana 3.2 的答案
// From within a controller:
$this->request->action();
$this->request->controller();
$this->request->directory();

// Can be used anywhere:
Request::current()->action();
Request::current()->controller();
Request::current()->directory();

答案 2 :(得分:3)

对于那些使用Kohana&gt; = 3.1的人来说,注意到Request对象的某些属性已经转换为方法可能会有用。

E.g。 Request::controller现在是Request::controller()(或当你在控制器内时$this->request->controller()。)

有关详情,请参阅http://kohanaframework.org/3.1/guide/kohana/upgrading

上的Kohana升级指南