В Kohana 2 вы можете легко получить такую информацию:
echo router::$controller; echo router::$method; echo router::$arguments[0-x];
Любая идея, как это работает в Kohana 3?
Заранее спасибо!
Изнутри контроллера:
$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()
для получения Request::instance()
global (или «master»).
Для получения дополнительной информации см. Руководство K3
Обновленный ответ для 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();
Для тех, кто использует Kohana> = 3.1, было бы полезно заметить, что некоторые свойства объекта Request были преобразованы в методы.
Например, Request::controller
теперь является Request::controller()
(или $this->request->controller()
когда вы находитесь внутри контроллера).
Для получения дополнительной информации я хотел бы обратиться к руководству по обновлению Kohana на http://kohanaframework.org/3.1/guide/kohana/upgrading