Php 如何更改Yii2中所有控制器的默认布局?
如何在Yi2中全局更改默认布局(=所有控制器和视图)?我想保持main.php布局不变,以备以后使用。您可以按以下方式执行。例如,可以如下方式创建defaultLayout.php布局:Php 如何更改Yii2中所有控制器的默认布局?,php,yii2,Php,Yii2,如何在Yi2中全局更改默认布局(=所有控制器和视图)?我想保持main.php布局不变,以备以后使用。您可以按以下方式执行。例如,可以如下方式创建defaultLayout.php布局: <?php $this->beginContent('@app/views/layouts/main.php'); ?> <div class="container"> <div class="row"> <div
<?php $this->beginContent('@app/views/layouts/main.php'); ?>
<div class="container">
<div class="row">
<div class="col-lg-4">Left Side Bar</div>
<div id="content" class="col-lg-4">
<?php echo $content; ?>
</div><!-- content -->
<div class="col-lg-4">Right Side Bar</div>
</div>
</div>
<?php $this->endContent(); ?>
在配置(config/main.php)中,您可以覆盖所有视图的默认布局
[
// ...
'components' => [
'view' => [
'layout' => 'main.php'
],
// ...
],
]
在配置根目录中,您可以为所有视图写入默认布局[]:
[
...
'layout' => 'main',
'components' => [
...
]
]
在配置中,您可以编辑 例如:
$config = [
...
'layoutPath' => '@app/views/layouts-2'
];
config/web.php文件中的更改 并将这一行添加到组件数组之前 在view/layout/main_style.php中创建的新样式名称
'layout' => 'main_style'
使用此整个项目布局已更改在Yii2配置中配置(&I):
$config = [
...
'layoutPath' => '@app/views/layouts2',
'layout' => 'main2.php',
];
上面的示例将默认视图app/views/layouts/main.php
更改为app/views/layouts2/main2.php
如果我这样做,我会得到以下错误:处理另一个错误时出错:yii\base\UnknownPropertyException:设置未知属性:yii\web\View::layout in C:\…\yii\vendor\yiisoft\yii2\base\Component.php:197…但我想指定一个特定的布局,而不仅仅是它们所在的文件夹。只需查看文档链接。使用
layoutPath
,您可以为所有控制器和操作拥有自己的布局,并且默认布局保持不变。(正如您在问题中所说的)。如果不是这样,请重写您的问题,并更清楚地说明您试图实现的目标。对config/main.php的更改是不正确的。有关正确的语法,请参阅已接受的答案。与已接受的答案相比,答案不添加任何新信息。
$config = [
...
'layoutPath' => '@app/views/layouts2',
'layout' => 'main2.php',
];