如果我需要从菜单中的后端部分(或从后端到管理员)添加前端内容的链接,我如何在没有硬编码的情况下执行此操作? 这样:
\Yii::$app->request->BaseUrl
从父目录返回路径
/sitename/backend/web
/sitename/frontend/web
答案 0 :(得分:22)
在后端应用程序配置中,您应该添加额外的“UrlManager”组件,其名称和配置与前端应用程序中使用的名称和配置相同:
return [
'components' => [
'urlManager' => [
// here is your backend URL rules
],
'urlManagerFrontEnd' => [
'class' => 'yii\web\urlManager',
'baseUrl' => '/a/frontend/web',
'enablePrettyUrl' => true,
'showScriptName' => false,
],
],
];
然后你应该调用以下来组成前端URL:
Yii::$app->urlManagerFrontEnd->createUrl();
答案 1 :(得分:3)
我的错误 - 我错误地发送了链接值。
错:
$menuItems[] = ['label'=>'frontend', 'url'=>[\Yii::$app->urlManagerFrontEnd->baseUrl]];
多数民众赞成:
$menuItems[] = ['label'=>'frontend', 'url'=>\Yii::$app->urlManagerFrontEnd->baseUrl];