作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的应用程序中有一个产品模块,我在我的高级应用程序的后端和前端注册,我想实现如果用户从前端应用程序访问产品模块我想呈现不同的布局而不是/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/
我是一名优秀的程序员,十分优秀!