我有一个变量modifier
传递给了几个树枝模板。我希望能够不传递它,传递单个字符串,或传递一个字符串数组。然后我想在模板代码中假设它总是一个字符串数组(可能是空的)。
目前我在枝条模板的开头
{% set modifier = modifier | default([]) %}
{% if modifier is not iterable %}
{% set modifier = [modifier] %}
{% endif %}
这就是我想要的,但有更简单的方法吗?做一些非常简单的代码需要很多代码。
答案 0 :(得分:1)
您可以使用过滤器对其进行单行处理(但似乎无法模仿默认过滤器)
<?php
$filter = new Twig_SimpleFilter('wrap_array', function ($value) {
return is_array($value) ? $value : [ $value, ];
});
$twig = new Twig_Environment($loader);
$twig->addFilter($filter);
并在模板中使用它:
{% set foo = foo|default({})|wrap_array %}