Jak zmienić domyślny układ globalnie (= dla wszystkich kontrolerów i widoków) w Yii2? Chcę opuścić układ main.php, tak jak na wypadek, gdy chcę go później użyć.Jak zmienić domyślny układ dla WSZYSTKICH kontrolerów w Yii2?
Odpowiedz
W korzeniu konfiguracji można pisać domyślny układ [[\yii\base\Application::$layout]] dla wszystkich widokach:
[
...
'layout' => 'main',
'components' => [
...
]
]
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'
],
// ...
],
]
Mówi globalnie dla wszystkich działań kontrolera ... a nie lokalnie .. – scaisEdge
Zmiana na config/main.php jest niepoprawna. Zobacz akceptowaną odpowiedź, aby uzyskać poprawną składnię. – TheStoryCoder
W konfiguracji można edytować layoutPath.
Przykład:
$config = [
...
'layoutPath' => '@app/views/layouts-2'
];
... ale chcę określić konkretny układ, a nie tylko folder, w którym się znajdują. – TheStoryCoder
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
Jeśli tak nie jest, przepisz swoje pytanie i wyjaśnij, co próbujesz osiągnąć. – Clyff
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
Odpowiedź nie dodaje żadnych nowych informacji w porównaniu do już zaakceptowanej odpowiedzi. – TheStoryCoder
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
Tak, myliłem się. Poprawiłem odpowiedź. –