2015-02-21 4 views
3

Я хотел бы, чтобы отобразить проверил, если переменная равна нулю, так что я есть сделать этот кодДобавление условия, если в ATTR из form_widget

{{ 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 

ответ

4

Разделители например, {% ... %} используется для выполнения таких операторов, как for-loops.

Делимиторы, такие как {{ ... }}, печатает результат выражения в шаблоне.

Вы перепутали их. Правильный код будет:

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

Спасибо, но это работает хорошо, когда путешествие является недействительным, но если это не null Я получил эту ошибку «Исключение было сделано во время рендеринга шаблона (« Catchable Fatal Error: Аргумент 3, переданный Symfony \ Component \ Form \ FormRenderer :: searchAndRenderBlock() должен быть массивом, , вызываемый в D: \ wamp \ www \ agence \ app \ cache \ dev \ twig \ ff \ 3e \ 245f88bde08490efe84c9a a31edb90139aa09d4ffd1773d1e01ec54eca40.php on line 181 and defined ") в AppBundle: Dashboard/Travel: form.html.twig в строке 100.' – hous

+0

попробуйте обернуть второй аргумент в скобках. Я обновил свой ответ –

+0

извините, но я получил ту же ошибку: / – hous

1

Попробуйте это:

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

вам необходимо также передать ложный вариант - в этом случае {}

Смежные вопросы