我正在用symfony2和twig做一个表单,从BDD获取信息。 我想根据一些信息自定义渲染。
如果我的数据chanson为空,我想显示输入以设置它。 如果我的数据不为空,我想显示一个显示数据的paragraphe,以及一个用于修改值并显示输入的链接。
我尝试这样的事情:
{% 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 %}
它不起作用。我试着用价值代替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
有人知道这个问题吗? 谢谢,
答案 0 :(得分: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
对象。