Kohana 3 получить текущий контроллер / действие / аргументы - PullRequest
18 голосов
/ 04 мая 2010

В Kohana 2 вы можете легко получить такую ​​информацию, например:

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

Есть идеи, как это работает в Kohana 3?

Заранее спасибо!

Ответы [ 3 ]

32 голосов
/ 04 мая 2010

Внутри контроллера:

$this->request->controller

$this->request->action

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

В отличие от K2 аргументы в K3 доступны через kaysкоторый вы определяете в своих маршрутах.

Возьмем, к примеру, этот URL:

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

Чтобы получить доступ к аргументу "id", вы должны позвонить

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

Вы не можете получить доступ к аргументам контроллера / действия из метода param ().

Обратите внимание, вы также можете использовать Request::instance(), чтобы получить глобальный (или "главный") экземпляр запроса.

Для получения дополнительной информации см. Руководство K3

25 голосов
/ 05 ноября 2011

Обновленный ответ для Кохана 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();
3 голосов
/ 28 июля 2011

Для тех, кто использует Kohana> = 3.1, было бы полезно заметить, что некоторые свойства объекта Request были преобразованы в методы.

например. Request::controller теперь Request::controller() (или $this->request->controller(), когда вы находитесь внутри контроллера).

Для получения дополнительной информации я хотел бы сослаться на руководство по обновлению Kohana на http://kohanaframework.org/3.1/guide/kohana/upgrading

...