Layouts
vaskoda
Публикувано на: 02-02-2012, 00:30
Име: vasko

Регистриран на: 02-02-2012

Здравейте. Искам да попитам как да реализирам layout. Имам един контролер който вади списък с филми.В layout.phtml имам следното
<html>
...........
<div id="sidebar">
</div>
<div id="content">
<?php echo $this->layout()>content?> //
</div>
.............
</html>


Засега всичко си работи. Да кажем обаче ,че искам да добавя анкета в sidebar.
Трябва ли логиката(кода) на анкетата да го вкарам в същия контрол който вади списъка с филми. Някак си не ми звучи правилно. Кода за анкетата сам си го написал в отделен контролер ,но не знам как и къде да му заредя логиката и да му заредя визуалната част в layout.
dobo
Редактирано на: 03-02-2012, 12:35
Име: Добрил Божилов
54 Мнения
Регистриран на: 09-02-2011

Аз лично не го правя така. В layout-та имам контент в който рендвам view-тата. Вътре в този контент слагам sidebar ако има. И ако е повтарящо се нещо на всички view-та го слагам в partials.

Другия вариант е в layouta в sidebar да сложиж this->render, което пак е същото почти като partials.

Спецялно за анкета аз бих сложил html в partial, като самия html би подавал данните от кликнатата опция с jquery post примерно към контролера който си направил. Той обработва, записва в базата и връща новия резултат, който обновяваш с jquery.

Така във всяко view би имало $this->partials(). Или ако не искаш да мърдаш това което си направил, го направи с $this->render в layout-а, като останалото е същото.

Няма значение къде е логиката на анкетата. Стига да е в отделен action. Контролера е без значение. Отделен контролер цял да правиш само за един action не си струва. Но пък ако направиш и го кръстиш - анкета, ще е по разбрано:) Според както ти харесва.