Страница 1 из 1

Вложенные шаблоны

Добавлено: 2015.05.13, 15:47
gli_mor
Добрый день! Подскажите пожалуйста. Хочу сделать вложенный шаблон, в дочернем шаблоне common.php прописал

Код: Выделить всё

<?php $this->beginContent('@backend/views/layouts/main.php');
echo $content;
 $this->endContent(); ?>
что должно быть прописано в main.php?

Re: Вложенные шаблоны

Добавлено: 2015.05.13, 16:23
gli_mor
Разобрался, в моём случае, дочерним шаблоном должен быть main.php, на который ссылается по умолчанию SiteController. В нём $this->beginContent('@backend/views/layouts/common.php');

Re: Вложенные шаблоны

Добавлено: 2015.05.13, 16:28
yiijeka
Там же уже есть html.
В шаблоне main есть тоже $content; вот вместо него и выведется ваш common

Re: Вложенные шаблоны

Добавлено: 2015.05.13, 16:30
yiijeka
Если у вас main в контроллере то он главный, а дочерним является common. Их можно вкладывать, как душе угодно, в зависимости от задачи.

Re: Вложенные шаблоны

Добавлено: 2015.05.13, 16:41
gli_mor
По умолчанию, siteController ссылается на main.php, в нём сделал

Код: Выделить всё

<?php $this->beginContent('@backend/views/layouts/common.php');
echo $content;
 $this->endContent(); ?>
, а в common.php

Код: Выделить всё

<!DOCTYPE html>
<head>
</head>
<body>
<?php $this->beginBody(); ?>
<?php echo $content ?>
<?php $this->endBody(); ?>
</body>
</html>
, в таком виде всё работает. P.S. возможно при этом main.php главный, но меня интересовала вложенность

Re: Вложенные шаблоны

Добавлено: 2017.08.19, 23:40
Viloborod
Я понимаю, что древнюю тему апаю, но все же.

https://github.com/yiisoft/yii2/blob/ma ... е-шаблоны-

В случае выше получилось так, что common.php стал главным, а main.php дочерним.

Предположим есть 2 контроллера, в каждом используется свой шаблон, к примеру main1.php и main2.php
то тогда должно быть так:

Код: Выделить всё

main1.php
<?php $this->beginContent('@backend/views/layouts/common.php');
<h1>Это шаблон 1</h1>
echo $content;
 $this->endContent(); ?>

Код: Выделить всё

main2.php
<?php $this->beginContent('@backend/views/layouts/common.php');
<h1>Это шаблон 2</h1>
echo $content;
 $this->endContent(); ?>

Код: Выделить всё

common.php
<!DOCTYPE html>
<head>
</head>
<body>
<?php $this->beginBody(); ?>
<?php echo $content ?>
<?php $this->endBody(); ?>
</body>
</html>