如何使用 Twig 模板自动选中复选框


How to auto check checkboxes using Twig template?

我想在HTML中自动选中复选框。我已经设法让它工作,但它在模板中有点混乱:

<ul>
    {% for tag in tags %}
        {% set selected = false %}
        {% for article_tag in article.tags %}
            {% if article_tag.id == tag.id %}
                {% set selected = true %}
            {% endif %}
        {% endfor %}
        <li><input type="checkbox" name="tags[]" value="{{ tag.id }}" {% if selected %}checked{% endif %}> {{ tag.name }}</li>
    {% endfor %}
</ul>

所以我加载的数据是这样的(JSON格式):

[
    'tags' => [
        {'id'=> 1, 'name'=>'Travel'},
        {'id'=> 2, 'name'=>'Cooking'},
    ],
    'article' => {
        'tags' => [
            {'id'=> 1, 'name'=>'Travel'},
        ],
    }
]

另外,我没有使用Symfony(我使用的是Slim的Twig库),所以不确定Symfony的框架中是否有一些东西可以使用Twig做事。如果是这样,它对我不起作用:(

问题是文章是一个数组,所以或者你需要为每个包含的标签数组循环使用它,或者你只是访问它的第一个元素,如下所示:

    {% for article_tag in article[0].tags %}

而不是:

    {% for article_tag in article.tags %}

查看此工作树枝上的结果

希望这个帮助