Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 29.04.2013 12:29:20

Как разделить предстaвления (view)?

Добрый день, не получается разделить вьюшки на составляющие header, footer, content

Blade не использую.

В Home_Controller прописал public $layouts = 'home.index';

В методе этого контроллера action_index()

 $this->layout->nest('index', 'home.index');

А далее в папке view/home создал файлы header.php, footer.php, content.php в них прописал:

<?Section::start('header')?>
header ... etc
<?Section::stop()?>

а в index.php вывожу:

<?=Section::yield('header')?>
<?=Section::yield('content')?>
<?=Section::yield('footer')?>

Ничего не отображается, уже столько времени убил =\
Както получался вывод, но только если 1 раз использовал секцию...
Что я делаю не так?

Не в сети

#2 29.04.2013 12:55:04

Re: Как разделить предстaвления (view)?

  1. Blade не использую.

А почему нет? С секциями намного проще через него работать. На производительность это мало влияет.

  1. PHPpublic $layouts 'home.index';

Может быть $layout?

  1. PHP$this->layout->nest('index''home.index');

То есть ты вставляешь шаблон home.index в самого себя? Посмотри ещё раз на параметры метода.

По-моему у тебя путаница с понятием «секция» и «шаблон». Не понятно, зачем используются PHPSection::yield(), если ты всё равно разнёс их содержимое по разным файлам — можно и просто PHP<?=$header?>.

$layout должен указывать на полный шаблон (index.php?), а в методе ты должен в него вкладывать все три подшаблона:

PHP
$this->layout
  
->nest('content''home.index')
  ->
nest('header''home.header')
  ->
nest('footer''home.footer');

Не в сети

#3 30.04.2013 13:23:13

Re: Как разделить предстaвления (view)?

По-моему у тебя путаница с понятием «секция» и «шаблон». Не понятно, зачем используются Section::yield(), если ты всё равно разнёс их содержимое по разным файлам

а что секции не разносят по разным файлам? а куда их тогда?

можно и просто

<?=$header?>

не получилось, вылез эксепшн.

Попробовал так:
1) Создал файл content.php  в него код html заключенный в секцию "content".
2) В index.php в нужном месте вывод секции yield'ом
3) В home контроллере, action_index() указал:

$this->layout->nest('content', home.index);

и ничего не выводит =\

Изменено vell (30.04.2013 13:24:43)

Не в сети

#4 30.04.2013 13:34:46

Re: Как разделить предстaвления (view)?

Разберись с понятием «секция», посмотри исходники view.php/section.php если не понятно. Объяснять долго, проще увидеть один раз, как это работает.

Не в сети

#5 30.04.2013 13:42:32

Re: Как разделить предстaвления (view)?

Исходники бегло глянул, не так уж и очевидно, а в сети примера как работать с секциями без blade - не нашел

Не в сети

Подвал раздела