Twig 显示数组或所有的 n 个键

Twig show n keys of array or all

我有一个带有一组按钮的编辑器,我只想显示一组基于 twig::render 变量的按钮。 如果我包含所有我希望它显示的按钮可用,如果我包含单独的按钮键我只想显示那些按钮。

echo TwigLoader::render('@ui/editor.html.twig'['toolbar'=>['all']]);
echo TwigLoader::render('@ui/editor.html.twig'['toolbar'=>['font','size']]);

我使用以下代码作为模板:

{% set toolbar_tools = [
{'font':'<select class="ql-font"></select>'},
{'size':'<select class="ql-size"></select>'}] 
%}

<div id="button-container">
    <span class="ql-formats">
        {% for tool, key in toolbar_tools %}
             {{ tool.key|raw}}
        {% endfor %}
    </span>
</div>

我得到一个空容器。 这是一个好的策略还是有更好的方法?

您似乎在寻找这样的东西:

{% set toolbar_tools = {
        'font':'<select class="ql-font"></select>',
        'size':'<select class="ql-size"></select>'
    } 
%}

<div id="button-container">
    <span class="ql-formats">
        {% if toolbar|length > 0 %}
            {% for t in toolbar %}          
                {% if t == 'all' %}
                    {# show all options #}
                    {% for tool in toolbar_tools %}
                        {{ tool|raw }}                   
                    {% endfor %}
                {% else %}
                    {# show defined options #}
                    {{ attribute(toolbar_tools, t)|raw }}
                {% endif  %}
                <br />
            {% endfor %}
        {% endif %}
    </span>
</div>

希望你会没事的。