Страница 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>