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>

Я получаю пустой контейнер. Это хорошая стратегия или есть лучшие способы?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
32
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 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>

Надеюсь, ты справишься с этим.

Другие вопросы по теме