在Kohana 2中,你很容易得到这样的信息:
echo router::$controller;
echo router::$method;
echo router::$arguments[0-x];
任何想法在Kohana 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)
// 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升级指南