如何在Kohana 3中获取操作URL?

时间:2011-10-31 23:14:58

标签: controller action kohana-3

我是否可以使用官方方法或帮助程序在视图中获取操作的URL?

例如,当我在/ controller / action0的视图中时,我喜欢获取/ controller / action1的URL。

我知道我可以使用以下代码,但我想知道它是否已经在Kohana的核心。

function getControllerActionURL($controller,$action)
{
   return URL::site(false,true).$controller."/".$action;
}

1 个答案:

答案 0 :(得分:3)

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
 ));

<强> 2C 即可。 Request::uri()默认情况下使用当前路线参数,因此如果您只想更改action(或id等),您可以跳过当前参数

 $uri = Request::instance() // or Request::current()
     ->uri(array(
           'action'     => $action
 ));

仅传递action,我们要求Request使用其当前值($this->controller表示控制器名称,$this->directory表示目录等)

PS。阅读this

PPS。在Kohana v3.2 Request::uri()调用返回当前URI ,因此您需要调用Request::current()->route()->uri(...);