谁一开始就是大神?

createUrl的一个问题,我晕了?

网站的根目录是 /aurora/
然后有五个应用,blog + foumn + shop + back + front
back应用是项目的后台,管理blog+foumn+shop,
front应用是blog+foumn+shop的用户中心页面(前台管理嘛),相当于back的功能
现在问题是解决url硬编码的问题,其中blog+foumn+shoap有时会需要

/aurora/back/index.php?r
/aurora/front/index.php?r

的url需求,
然后我发现
//假设在blog应用中
Yii::$app->urlManage->createUrl('');
//结果是 
/aurora/blog/web/index.php?r=

//然后加了一个配置
//in blog config
        'frontUrl' => [
            'class' => 'yii\web\urlManager',
            'baseUrl' => '/aurora/front/web'
        ],
//然后在blog的view中
Yii::$app->frontUrl->createUrl('');
//兴高采烈的以为会
/aurora/front/web/index.php?r=
//发现依旧是
/aurora/blog/web/index.php?r=

//看了源码之后发现是(在 yii\web\UrlManager)
$baseUrl = $this->showScriptName || !$this->enablePrettyUrl ? $this->getScriptUrl() : $this->getBaseUrl();
导致这种效果

大家有没有好的解决方法:
感谢任何建议。
很明显我不会增加这些配置的


'enablePrettyUrl' => true,
'showScriptName' => false,

echo '/api' . Url::toRoute('/site/index')
返回/api/index.php?r=site/index
这样不就行了

赞(0) 打赏
未经允许不得转载:菜鸟之家 » createUrl的一个问题,我晕了?

评论 抢沙发

登录

找回密码

注册