Symfony 在表单\小部件的属性中添加条件if

Symfony 在表单\小部件的属性中添加条件if,symfony,twig,Symfony,Twig,如果一个变量为空,我想显示选中的,,因此我必须生成此代码 {{ form_widget(form.showPrice, {% if travel is null %} {'attr': {'checked': 'checked'}} {% endif %} ) }} 但我犯了这个错误 A hash key must be a quoted string, a number, a name, or an expression enclosed in parentheses (unexpecte

如果一个变量为空,我想显示选中的,因此我必须生成此代码

{{ form_widget(form.showPrice, {% if travel is null %}  {'attr': {'checked': 'checked'}} {% endif %} ) }}
但我犯了这个错误

A hash key must be a quoted string, a number, a name, or an expression enclosed in
parentheses (unexpected token "operator" of value "%" in AppBundle:Dashboard/Travel:form.html.twig at line 100

{%…%}
这样的分隔符用于执行诸如for循环之类的语句

{{…}}
这样的分隔符将表达式的结果打印到模板中

你把他们搞砸了。正确的代码应该是:

{{ form_widget(form.showPrice, (travel is null ? {'attr': {'checked': 'checked'} }) ) }}
试试这个:

{{ form_widget(form.showPrice, (travel is null ? {'attr': {'checked': 'checked'} } : {}) ) }}

您还需要传递false选项-在本例中,谢谢,但是当travel为null时,这很好,但是如果它不为null,则我得到此错误
在呈现模板期间引发了异常(“可捕获的致命错误:参数3传递给Symfony\Component\Form\FormRenderer::searchandenderblock())必须是一个数组,字符串给定,在第181行的AppBundle:Dashboard/Travel:form.html.twig的第100行的AppBundle:Dashboard/Travel:form.html.twig中调用D:\wamp\www\agence\app\cache\dev\twig\ff\3e\245F88BDE084490EFE84C9AA31EDB90139AA09D4FFD1773D1E01EC54EC40.php,并定义为“)。我更新了我的答案