2016-02-15 17 views

Odpowiedz

7

W korzeniu konfiguracji można pisać domyślny układ [[\yii\base\Application::$layout]] dla wszystkich widokach:

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

Jeśli to zrobię, pojawia się następujący błąd: Wystąpił błąd podczas obsługi innego błędu: yii \ base \ UnknownPropertyException: Ustawianie nieznanej właściwości: yii \ web \ Widok :: Układ w C: \ ... \ yii \ sprzedawca \ yiisoft \ yii2 \ base \ Component.php: 197 – TheStoryCoder

+0

Tak, myliłem się. Poprawiłem odpowiedź. –

0

Możesz zrobić w następujący sposób. Na przykład układ defaultLayout.php mogą być tworzone tak:

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

Wewnątrz względnego działania

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

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

W konfiguracji (config/main.php) można nadpisać domyślny układ dla wszystkich widoków

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

Mówi globalnie dla wszystkich działań kontrolera ... a nie lokalnie .. – scaisEdge

+0

Zmiana na config/main.php jest niepoprawna. Zobacz akceptowaną odpowiedź, aby uzyskać poprawną składnię. – TheStoryCoder

0

W konfiguracji można edytować layoutPath.

Przykład:

$config = [ 
    ... 

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

... ale chcę określić konkretny układ, a nie tylko folder, w którym się znajdują. – TheStoryCoder

+1

Zobacz link do dokumentacji. Używając 'layoutPath', możesz mieć własny układ dla WSZYSTKICH kontrolerów i działań, a pozostawisz domyślny układ nienaruszony. (jak powiedziałeś w swoim pytaniu). – Clyff

+1

Jeśli tak nie jest, przepisz swoje pytanie i wyjaśnij, co próbujesz osiągnąć. – Clyff

-1

Zmiana config/web.php złożyć

i dodać tę linię przed szereg komponentów

swoją nazwę nowego stylu, który jest tworzony w widoku/Układ/main_style. php

'layout' => 'main_style' 

Zmiana całego układu projektu

+0

Odpowiedź nie dodaje żadnych nowych informacji w porównaniu do już zaakceptowanej odpowiedzi. – TheStoryCoder