gpt4 book ai didi

yii2 - 如何在 yii2 中更改布局

转载 作者:行者123 更新时间:2023-12-04 12:46:43 25 4
gpt4 key购买 nike

我的应用程序中有一个产品模块,我在我的高级应用程序的后端和前端注册,我想实现如果用户从前端应用程序访问产品模块我想呈现不同的布局而不是/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/main.php 而不是/myproject/backend/web/views/layouts/productLayout.php。我在产品模块默认 Controller 的代码中尝试了这个

public $productLayout = '@frontend/views/layouts/productLayout';
public function actionIndex()
{
$this->layout = $this->productLayout;
}

它在前端工作得很好,但是当我尝试从后端访问时,它无法正常工作,因为它加载了前端布局文件...
对此的任何帮助都会很好,谢谢

最佳答案

您可以测试应用程序 ID(并最终在 config/main.php 中使用适当的唯一名称设置它)并设置您需要的布局。

public function actionIndex()
{
if (Yii::$app->name == 'my_id_for_backend') {
$this->layout == '@backend/views/layouts/main';
} else {
$this->layout ='@frontend/views/layouts/productLayout';
}
}

关于yii2 - 如何在 yii2 中更改布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37443995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com