メニューのバックエンド部分から(またはバックエンドから管理者へ)フロントエンドのものへのリンクを追加する必要がある場合、ハードコードなしでこれを行うにはどうすればよいですか?この:
\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]];
それはうまくいきます:
$menuItems[] = ['label'=>'frontend', 'url'=>\Yii::$app->urlManagerFrontEnd->baseUrl];