Yii2高级使用别名从后端访问前端

Yii2高级使用别名从后端访问前端,yii2,Yii2,我正在尝试使用别名从后端菜单访问前端/web yii:yii2高级 webserver:XAMPP IDE:netbean 我修改的代码: C:\xampp\htdocs\advanced\common\config\aliases.php Yii::setAlias('fronthome', dirname(dirname(__DIR__)) . '/frontend/web/'); C:\xampp\htdocs\advanced\backend\views\layouts\main.ph

我正在尝试使用别名从后端菜单访问前端/web

yii:yii2高级
webserver:XAMPP
IDE:netbean

我修改的代码:

C:\xampp\htdocs\advanced\common\config\aliases.php

Yii::setAlias('fronthome', dirname(dirname(__DIR__)) . '/frontend/web/');
C:\xampp\htdocs\advanced\backend\views\layouts\main.php

if (Yii::$app->user->isGuest) {
    $menuItems[] = ['label' => 'Login', 'url' => ['/site/login']];
    $menuItems[] = ['label' => 'fronthome', 'url' => Yii::getAlias('@fronthome')];
但当通过后端菜单访问“fronthome”菜单时;浏览器正在返回url:
http://localhost/advanced/backend/web/C:/xampp/htdocs/advanced/frontend/web

我希望浏览器能提供:
http://localhost/advanced/frontend/web/

谁能帮我点灯吗。。。我搜索了一下,但通过alias找不到优雅的解决方案

谢谢

我通过做下面的更改使它工作

C:\xampp\htdocs\advanced\common\config\aliases.php

Yii::setAlias('fronthome', dirname(dirname(__DIR__)) . '/frontend/web/');
Yii::setAlias('fronthome',dirname(dirname(uu DIR_u))。/frontend/web/'

Yii::setAlias('fronthome','../../frontend/web/')

尝试使用params.php

在common/config文件夹的params.php上添加一个键

 'frontendUrl' => 'http://frontendUrl/',
然后,您可以通过以下方式访问视图中的任何位置:

<?= Yii::$app->params['frontendUrl'] ?>


希望这有帮助:)

由于评论中的链接已经过时,这里是Yii2文档的一个片段:

创建从后端到前端的链接 通常需要创建从后端应用程序到前端应用程序的链接。由于前端应用程序可能包含其自己的URL管理器规则,您需要通过不同的命名为后端应用程序复制该规则:

返回[
“组件”=>[
“urlManager”=>[
//这是您正常的后端url管理器配置
],
“urlManagerFrontend”=>[
//这是您的前端URL管理器配置
],
],
];
//完成后,您可以获得指向前端的URL,如下所示:

echo Yii::$app->urlManagerFrontend->createUrl(…)此处解释了如何从后端链接到前端: