Yii2 Ссылки между Frontend и Backend (расширенный шаблон)

Если мне нужно добавить ссылки на файлы frontend из бэкэнд-части в меню (или из бэкэнда в админ), как я могу сделать это без hardcode? Это:

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

возвращает путь из родительского каталога

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

Ответ 1

В конфигурации вашего бэкэнд-приложения вы должны добавить дополнительный компонент "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();

Ответ 2

Ошибка моей ошибки - неправильное значение ссылки

Неправильно:

$menuItems[] = ['label'=>'frontend', 'url'=>[\Yii::$app->urlManagerFrontEnd->baseUrl]];

Thats Works:

$menuItems[] = ['label'=>'frontend', 'url'=>\Yii::$app->urlManagerFrontEnd->baseUrl];