2012-09-10 84 views
1

Symfony2.1(以及在Symfony2.0中)可以render a widget by hand in a Twig template。所以,如果一個會呈現一個文本字段名「用戶名」,相關標籤錯誤輸入可單獨呈現,即:Symfony2.1:如何渲染一個「重複」的微件手動

{{ form_label(form.username) }} 
{{ form_errors(form.username) }} 
{{ form_widget(form.username) }} 

在Symfony2.1中,Repeated場小組已被介紹。確保用戶沒有爲重要條目插入錯誤值是有用的(例如電子郵件地址密碼)。

問題是,如何用手在樹枝模板中渲染它

請注意{{ form_widget(form.username) }}在這種情況下,將導致整個組件(即兩個標籤輸入)。

回答

6
$builder->add('userPass', 'repeated', array(
     'type'  => 'password', 
     'label' => 'Zayso Password', 
     'required' => true, 
     'invalid_message' => 'The password fields must match.', 
     'constraints' => new NotBlank(), 

     'first_options' => array('label' => 'Zayso Password'), 
     'second_options' => array('label' => 'Zayso Password(repeat)'), 

     'first_name' => 'pass1', // form.userPass.pass1 
     'second_name' => 'pass2', // form.userPass.pass2 
    )); 

在模板中,你可以做:{{form_widget(form.userPass.pass1}}不知道它是記錄,但發現它的地方

3

晚的答案,但你也可以添加

{{form_widget(form.username.first)}}

以生成所述第一小部件元件。

如果要單獨顯示labelwidget,你可以使用:

{{ form_label(form.username.first) }} 
{{ form_errors(form.username.first) }} 
{{ form_widget(form.username.first) }} 

{{ form_label(form.username.second) }} 
{{ form_errors(form.username.second) }} 
{{ form_widget(form.username.second) }} 

這裏是Repeated Field Type的文檔。