Twig покажет n ключей массива или все - PullRequest
0 голосов
/ 24 июня 2019

У меня есть редактор с набором кнопок, и я хочу отображать только набор кнопок на основе переменных 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 Ответ

1 голос
/ 24 июня 2019

Кажется, вы ищете что-то вроде этого:

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

Надеюсь, с тобой все будет в порядке.

...