Вы правы, тест на веточку iterable
имеет недостатки, так как объекты также могут быть итеративными. PHP имеет удобные функции, такие как is_array
и is_object
, однако получить прямой доступ к обычной функции PHP в Twig невозможно. Итак, нам нужно написать расширение / тест Twig, т.е. добавить новый Twig_SimpleTest
, чтобы проверить, является ли элемент is_array
. Вы можете добавить этот тест в конфигурацию своего приложения после общей ветки bootstrap.
$isArray= new Twig_SimpleTest('array', function ($value) {
return is_array($value);
});
$twig->addTest($isArray);
и просто использовать ее следующим образом:
{% if var is array%} It is an array
{% else %} It is an object{% endif %}