首页 > 解决方案 > Twig 显示数组或全部的 n 个键

问题描述

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

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

标签: phptwigtemplating

解决方案


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

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

希望你会没事的。


推荐阅读