如何更改Yii2中所有控制器的默认布局?

时间:2016-02-15 11:04:22

标签: php yii2

如何在Yii2中全局更改默认布局(=对于所有控制器和视图)?我想保留main.php布局,以防我以后想要使用它。

5 个答案:

答案 0 :(得分:11)

在配置的根目录中,您可以为所有视图编写默认布局[[\yii\base\Application::$layout]]:

[
     ...
     'layout' => 'main',
     'components' => [
     ...
     ]
]

答案 1 :(得分:1)

您可以通过以下方式进行操作。例如,可以像这样创建defaultLayout.php布局:

<?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(); ?>

在相对行动中

public function actionIndex()
{
    $this->layout = 'defaultLayout';

    return $this->render('index', [
        'model' =>$model,
    ]);
}

在配置(config / main.php)中,您可以覆盖所有视图的默认布局

[
    // ...
    'components' => [
        'view' => [
            'layout' => 'main.php'
        ],
        // ...
    ],
]

答案 2 :(得分:1)

配置layout&amp; Yii2配置中的layoutPath

$config = [
    ...
    'layoutPath' => '@app/views/layouts2',
    'layout' => 'main2.php',
];

以上示例将默认视图app/views/layouts/main.php更改为app/views/layouts2/main2.php

  

Yii2 Application Structure > Application

答案 3 :(得分:0)

答案 4 :(得分:-1)

更改config / web.php文件

并在组件数组

之前添加此行

在view / layout / main_style.php

中创建的新样式名称
'layout' => 'main_style'

使用此整个项目布局已更改