2

私は Twig を使用して Symfony2 を使用しており、param に 2 つの配列があります。

私のコントローラー:

return $this->render('MyBundle:Default:index.html.twig',
                             array('checked' => $boxChecked,
                                   'choices' => $choices));

Vars 'checked' と 'choices' は 2 つの配列です。$checked[$choices[$i]] の値を表示して true または false と比較し、checked または not を twig tpl への入力に適用します。

これは私のコードですが、動作しません:

{% for choice in choices %}

      {% if checked.{{choice}} == true %}

        <div class="choice">{{ choice|capitalize }} <input type="checkbox" id="{{ choice }}" /></div>

    {% else %}

        <div class="choice">{{ choice|capitalize }} <input type="checkbox" id="{{ choice }}" checked="checked" /> </div>

    {% endif %}

{% endfor %}

エラーは:Expected name or number in &quot;MyBundle:Default:index.html.twig&quot; at line 22 (500 Internal Server Error)

22行目は次のとおりです。{% if checked.{{choice}} == true %}

どのようにチェックしたのかわかりません。

4

1 に答える 1

5

代わりに括弧構文を使用する必要があります。

    {% for choice in choices %}

          {% if checked[choice] == true %}

            <div class="choice">{{ choice|capitalize }} <input type="checkbox" id="{{ choice }}" /></div>

        {% else %}

            <div class="choice">{{ choice|capitalize }} <input type="checkbox" id="{{ choice }}" checked="checked" /> </div>

        {% endif %}

    {% endfor %}
于 2013-06-11T10:42:14.213 に答える