Подтвердить что ты не робот

Kohana 3 получает текущий контроллер/действие/аргументы

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

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

Любая идея, как это работает в Kohana 3?

Спасибо заранее!

4b9b3361

Ответ 1

Изнутри контроллера:

$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() для получения экземпляра запроса global (или "master" ).

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

Ответ 2

Обновлен ответ для 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();

Ответ 3

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

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

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