Yii2前端和后端之间的链接(高级模板)

时间:2014-10-05 19:30:19

标签: php yii2

如果我需要从菜单中的后端部分(或从后端到管理员)添加前端内容的链接,我如何在没有硬编码的情况下执行此操作? 这样:

 \Yii::$app->request->BaseUrl 

从父目录返回路径

/sitename/backend/web
/sitename/frontend/web

2 个答案:

答案 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];