Kohana 3 get current controller/action/arguments

前端 未结 3 1972
悲&欢浪女
悲&欢浪女 2021-02-02 13:18

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

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

Any

相关标签:
3条回答
  • 2021-02-02 14:01

    For those using Kohana >= 3.1, it might be useful to notice that some properties of the Request object have been converted to methods.

    E.g. Request::controller is now Request::controller() (or $this->request->controller() when you're inside a controller).

    For more information, I'd like to reference to the Kohana upgrade guide on http://kohanaframework.org/3.1/guide/kohana/upgrading

    0 讨论(0)
  • 2021-02-02 14:02

    Updated answer for Kohana 3.2, from the user guide:

    // 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();
    
    0 讨论(0)
  • 2021-02-02 14:05

    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

    0 讨论(0)
提交回复
热议问题