我将此解决方案用于我的 CakePHP 2.3 网站的 i18n。
当此 URL 中的用户:example.com/myController/myAction/param1/param2
我想提供指向example.com/eng/myController/myAction/param1/param2
This 的链接时,我的视图文件中的此代码效果很好:
<a href="/eng<?php echo $this->here;?>">English</a>
但是当这个 URL 中的用户:example.com/fre/myController/myAction/param1/param2
我无法将他链接到这个 URL:example.com/eng/myController/myAction/param1/param2
我可以通过以下方式获取完整的 URL:
fullURL = Router::url( $this->here, true );
$strippedURL = str_replace("http://example.com/fre/myController/myAction/param1/param2","myController/myAction/param1/param2",$fullURL)
但我需要为每种语言制作这个。或者我可以从$fullURL
. 但它们似乎不是好的解决方案。你有什么建议吗?
编辑:在我的 Helper/View 文件中,我使用了这个:
function getRelURL() {
$controller = $this->request->params['controller'];
$action = $this->request->params['action'];
$URL = "/".$controller."/".$action."/";
foreach ($this->request->params['pass'] as $p) {
$URL .= urlencode($p)."/";
}
}
如果您能推荐更好的选择,我会很高兴。