我试图在类的方法中添加例如en
或bg
喜欢的语言。www.domain.com/language/
createUrl()
UrlManager
我只是为了测试而尝试的是:
<?php
namespace frontend\components;
class UrlManager extends \yii\web\UrlManager
{
public function createUrl($params)
{
$url = parent::createUrl($params);
return "/en{$url}";
}
}
我在我的课程中添加了课程urlManager
:
'urlManager' => [
'class' => 'frontend\components\UrlManager',
...
],
从此我预料到了,www.domain.com/en
但缺少语言。也许我误解了这个createUrl
方法。实现这一目标的正确方法是什么?
您在/en
从parent::createUrl()
. 它会显示你喜欢的/enhttp://example.com/controller/action
,你想要什么是域名之后追加再追加URL的休息,所以你需要explode()
的URL
,并插入所需块en
所需的位置内,您可以通过使用做到这一点array_splice()
。
只是为了更正,你可以使用以下
<?php
namespace frontend\components;
class UrlManager extends \yii\web\UrlManager
{
public function createUrl($params)
{
$url = parent::createUrl($params);
$chunks=explode('/', $url);
array_splice($chunks,3,0,"en");
return implode('/',$chunks);
}
}
现在当你调用
Yii::$app->urlManager->createUrl(['/controller/action']);
它会产生
http://example.com/en/controller/action
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句