@dk-web

Как полностью избавиться от логики в шаблоне?

Уффф.. сайт из одностраничного разросся до неимоверных масштабов... Это я так MVC внедряю.. Жуть какая-то, но привыкаю по-маленьку.
В шаблонах остался только вывод через foreach.
Но вот такой вопрос возник...
В админке делаю опции - подключить, отключить раздел на странице (модули) - прайс, социальные всякие иконки..
Они понадобятся в дальнейшем, но пока не хватает контента немного.
Раньше я бы просто конечно написал
if ($options['price']=="1")
.... table или include
endif

Но ведь мы договорились логику в шаблонах не использовать.
И в контроллере пустую переменную не передать - ругается на invalid foreach.
Как тогда?
  • Вопрос задан
  • 288 просмотров
Решения вопроса 1
@ib2
Веб-программист
Если же имеется более сложная логика, то в таком случае вводится дополнительный слой между контроллером и представлением - Presenter (ModelView), в который выносится логика представления.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
elevenelven
@elevenelven
Php Dev @ Amadeus
Я предлагаю вам посмотреть какие функции имеет шаблонизатор Twig
Там есть и for, и if. То есть, это нормально в шаблоне использовать условия и циклы.

И в контроллере пустую переменную не передать - ругается на invalid foreach.
Как тогда?

На то он и контроллер, чтобы контролировать ввод\вывод.
if(null === $myVar){
    $myVar = [];
 }

Если к вам пришла пустая переменная, а в шаблоне вывода ожидается массив, то преобразуйте её в пустой массив, перед передачей в шаблон.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы