Если мне нужно добавить ссылки на материалы frontend из бэкэнд-части в меню (или из бэкэнда в админ), как я могу сделать это без hardcode? Эта:
\Yii::$app->request->BaseUrl
возвращает путь от родителей
/sitename/backend/web /sitename/frontend/web
В конфигурации вашего бэкэнд-приложения вы должны добавить дополнительный компонент «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();
Моя ошибка – я ошибаюсь.
Неправильно:
$menuItems[] = ['label'=>'frontend', 'url'=>[\Yii::$app->urlManagerFrontEnd->baseUrl]];
Thats Works:
$menuItems[] = ['label'=>'frontend', 'url'=>\Yii::$app->urlManagerFrontEnd->baseUrl];