私のアプリケーションにバックエンドとフロントエンドの両方に登録する製品モジュールがあります。ユーザーがフロントエンドアプリケーションから製品モジュールにアクセスした場合に達成したいと思います。レイアウト/myproject/frontend/web/views/layouts/main.php私は/myproject/frontend/web/views/layouts/productLayout.phpをレンダリングしたいとしましょう。管理者がバックエンドアプリケーションから製品モジュールにアクセスする場合は、/myproject/backend/web/views/layouts/main.phpをレンダリングします。私のコードを変更することなく、バックエンドアプリケーションで/myproject/backend/web/views/layouts/main.phpを使用すると完璧に動作しますが、フロントエンドでは/ myproject/frontend/web/views/layoutsを使用するとうまく動作しません/myproject/backend/web/views/layouts/productLayout.phpの代わりに/main.phpを使用します。任意の ...私は製品モジュールのデフォルトコントローラに私のコードでyii2でレイアウトを変更する方法
public $productLayout = '@frontend/views/layouts/productLayout';
public function actionIndex()
{
$this->layout = $this->productLayout;
}
これを試み、それがフロントエンドで完璧に動作しますが、私は、バックエンドからアクセスしようとすると、それはフロントエンドのレイアウトファイルをロードすると、それは動作しません。これは助けになるでしょう。
アプリケーションに応じて2つの異なるレイアウトが必要なようです。これは必要なものですか? – scaisEdge
はい私はバックエンドのアプリケーションに応じて、アプリケーションに応じてフロントエンドのアプリケーションとバックエンドのアプリケーションの2つの異なるレイアウトが必要 – sam
私は提案との回答を掲載しました – scaisEdge