2013-02-20 2 views
1

Я делаю форму с symfony2 и веточкой, которые получают информацию от BDD. Я хочу настроить рендер в функции некоторой информации.symfony2 form twig входное значение

Если мои данные chanson пусты, я хочу показать ввод, чтобы установить его. Если мои данные не пусты, я хочу показать параграф, который показывает данные, и ссылку для изменения значения и отображения ввода.

Я пытаюсь что-то вроде этого:

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

Кто-нибудь знает проблему? Спасибо,

ответ

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 хранится в сеансе, правильный способ доступа к нему в вашем шаблоне ветви - это использовать объект app.session.

+0

Хорошо, спасибо, что он работает хорошо. Мой объект не хранится в сеансе, а сеанс - это имя формы, которую я создаю и визуализирую в представлении. Просто плохое имя. – vekah