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