2014-09-13 99 views
0

我是Symfony和樹枝模板的新手。我遇到的問題是我無法弄清楚如何在樹枝模板中分別渲染嵌入式窗體的字段。我試圖尋找它,但可能其他人使用了一些不同的形式,這些例子並不適合我。Symfony2嵌入形式在樹枝模板中呈現

我的形式:

class RegistrationType extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder->add('user', new UserType()); 
     $builder->add(
      'terms', 
      'checkbox', 
      array('property_path' => 'termsAccepted') 
     ); 
     $builder->add('Register', 'submit'); 
    } 

    public function getName() 
    { 
     return 'registration'; 
    } 
} 

class UserType extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder->add('username', 'text'); 
     $builder->add('name', 'text'); 
     $builder->add('email', 'email'); 
     $builder->add('password', 'repeated', array(
      'first_name' => 'password', 
      'second_name' => 'confirm', 
      'type'  => 'password', 
      'invalid_message' => 'Neteisingai pakartotas slaptažodis.', 
     )); 
    } 

    public function setDefaultOptions(OptionsResolverInterface $resolver) 
    { 
     $resolver->setDefaults(array(
      'data_class' => 'Keliones\MainBundle\Entity\User' 
     )); 
    } 

    public function getName() 
    { 
     return 'user'; 
    } 
} 

如何通過場渲染場應該是什麼?

回答

1

基本上Symfony和表單框架基於Type配置類創建Form對象。窗體對象具有傳遞查看http://api.symfony.com/2.4/Symfony/Component/Form/FormView.html

在樹枝可以訪問嵌入式FormView的對象一樣,CreateView的()方法:

{# access embeded form #} 
{{ form_row(form.user.username) }} 
{{ form_row(form.user.email) }} 
{{ form_row(form.user.password) }} 
{# access main form field #} 
{{ form_row(form.terms) }} 
+0

這是更好地使用主分支鏈接 HTTP://api.symfony。 COM /主/ Symfony的/分量/表格/ FormView.html – profuel 2017-04-05 13:23:16