Kohana 3 get current controller / действие / аргументы
в Kohana 2 Вы можете легко получить эту информацию следующим образом:
echo router::$controller;
echo router::$method;
echo router::$arguments[0-x];
есть идеи, как это работает в Kohana 3?
спасибо заранее!
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()
получить глобальный (или" главный") экземпляр запроса.
для получения дополнительной информации см. руководство K3
обновленный ответ для Кохана 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::controller
теперь Request::controller()
(или $this->request->controller()
когда вы находитесь внутри контроллера).
для получения дополнительной информации я хотел бы сослаться на руководство по обновлению Kohana на http://kohanaframework.org/3.1/guide/kohana/upgrading