我是否可以使用官方方法或帮助程序在视图中获取操作的URL?
例如,当我在/ controller / action0的视图中时,我喜欢获取/ controller / action1的URL。
我知道我可以使用以下代码,但我想知道它是否已经在Kohana的核心。
function getControllerActionURL($controller,$action)
{
return URL::site(false,true).$controller."/".$action;
}
答案 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(...)
;