Twig显示n个数组键或全部

时间:2019-06-24 15:58:57

标签: php twig templating

我有一个带有一组按钮的编辑器,我只想显示基于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>

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

1 个答案:

答案 0 :(得分:1)

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

{% 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>

希望您会满意的。