2016-02-15 151 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