Kohana 3 get current controller/action/arguments

n00b picture n00b · May 4, 2010 · Viewed 23.7k times · Source

In Kohana 2 you could easily get that information like this:

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

Any idea how that works in Kohana 3?

Thanks in advance!

Answer

Matt picture Matt · May 4, 2010

From inside a controller:

$this->request->controller

$this->request->action

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

Unlike K2 arguments in K3 are accessed via kays which you define in your routes.

Take for example this url:

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

To access the "id" argument you'd call

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

You can't access the controller / action arguments from the param() method.

Note, you can also use Request::instance() to get the global (or "master") request instance.

For more information see the K3 guide