2016-02-15 49 views

回答

7

在配置上,你可以写默认布局[[\yii\base\Application::$layout]]所有视图的根:

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

如果我这样做,我得到以下错误:处理另一个错误时发生错误: yii \ base \ UnknownPropertyException:设置未知属性:yii \ web \ View ::布局在C:\ ... \ yii \ vendor \ yiisoft \ yii2 \ base \ Component.php:197 – TheStoryCoder

+0

是的,我错了。我确定了我的答案。 –

0

您可以通过以下方式进行操作。例如,一个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, 
    ]); 
} 

在配置(配置/ main.php),可以覆盖所有的意见的默认布局

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

他说全球所有控制器的行动...而不是本地.. – scaisEdge

+0

改变config/main.php是不正确的。查看正确语法的接受答案。 – TheStoryCoder

0

在您的配置中,您可以编辑layoutPath

例子:

$config = [ 
    ... 

    'layoutPath' => '@app/views/layouts-2' 
]; 
+0

...但我想指定一个特定的布局,而不仅仅是他们所在的文件夹。 – TheStoryCoder

+1

只需查看文档链接。使用'layoutPath',您可以为所有控制器和操作拥有自己的布局,并且您将保持默认布局不变。 (就像你在你的问题中所说的那样)。 – Clyff

+1

如果情况并非如此,请重新编写您的问题,并更加清楚您想要完成的工作。 – Clyff

-1

在配置更改/ web.php文件

和前组件阵列,鉴于/布局/ main_style创建

新样式的名称加入这一行。 php

'layout' => 'main_style' 

使用此整个项目布局更改

+0

答案与已接受的答案相比没有新增信息。 – TheStoryCoder