Я предлагаю вам посмотреть какие
функции имеет шаблонизатор Twig
Там есть и
for, и
if. То есть, это нормально в шаблоне использовать условия и циклы.
И в контроллере пустую переменную не передать - ругается на invalid foreach.
Как тогда?
На то он и контроллер, чтобы контролировать ввод\вывод.
if(null === $myVar){
$myVar = [];
}
Если к вам пришла пустая переменная, а в шаблоне вывода ожидается массив, то преобразуйте её в пустой массив, перед передачей в шаблон.