1

我正在使用 symfony2 和 twig 制作表格,表格从 BDD 获取信息。我想根据一些信息自定义渲染。

如果我的数据通道为空,我想显示输入来设置它。如果我的数据不为空,我想显示一个显示数据的段落,以及一个用于修改值并显示输入的链接。

我尝试这样的事情:

{% if form_widget(session.chanson).attrvalue!='' %}
 <p>{{form_widget(session.chanson).attrvalue}} <a>modify</a></p>
{% else %}
 <p>{{ form_label(session.chanson,"Chanson : ") }}
 {{ form_errors(session.chanson) }}
 {{ form_widget(session.chanson) }}</p>
{% endif %}

它不工作。我尝试使用 value 而不是 attrvalue,它也不起作用。这是 symfony 所说的:Item "attrvalue" for "<input type="text" id="form_chanson" name="form[chanson]" required="required" value="La Rage" />" does not exist in CDUserBundle:Prof:edit_session.html.twig at line 19

有人知道这个问题吗?谢谢,

4

1 回答 1

1

您可以检查app.session.chanson变量是否为空,而不是使用:

{% if app.session.chanson %}
   <p>{{ app.session.chanson }} <a href="#">modify</a></p>
{% else %}
   <p>{{ form_label(app.session.chanson,"Chanson : ") }}
   {{ form_errors(app.session.chanson) }}
   {{ form_widget(app.session.chanson) }}</p>
{% endif %}

然后,您需要在modify链接上插入所需的操作。

另请注意,如果您的对象chanson存储在会话中,则在 twig 模板中访问它的正确方法是使用该app.session对象。

于 2013-02-20T15:51:09.613 回答