1 . Получите URI, используя имя маршрута :
$uri = Route::get('routename')
->uri(array(
'controller' => $controller,
'action' => $action
));
2a . Получите URI, используя основной маршрут :
$uri = Request::instance()
->uri(array(
'controller' => $controller,
'action' => $action
));
2b . То же самое с текущим маршрутом :
$uri = Request::current()
->uri(array(
'controller' => $controller,
'action' => $action
));
2в . Request::uri()
использует текущие параметры маршрута по умолчанию, поэтому, если вы хотите изменить только action
(или id
и т. Д.), Вы можете пропустить текущие параметры :
$uri = Request::instance() // or Request::current()
->uri(array(
'action' => $action
));
Передавая только action
, мы просим Request
использовать его текущие значения ($this->controller
для имени контроллера, $this->directory
для каталога и т. Д.)
PS. Прочитайте это .
PPS. В Kohana v3.2 Request::uri()
вызов возвращает текущий URI , поэтому вам нужно позвонить Request::current()->route()->uri(...)
;