Symfony 2:在Form Class中设置表单属性

时间:2014-05-25 12:16:18

标签: php forms symfony

我的Symfony 2项目中有这个表单类。一切正常,但我不知道在哪里设置表单标签属性。

namespace Forms\FormsBundle\Form\Type;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;

class RegistrationType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('username', 'email', array(
                'label' => 'Enter Username',
                'attr'  => array(
                    'class' => 'form-control',
                    'placeholder'   => 'Username',
                    'data-trigger'  => 'change',
                    'data-required' => 'true',
                    'data-type'     => 'email',
                )
            ))
            ->add('password', 'password', array(
                'label' => 'Enter Password',
                'attr'  => array(
                    'class' => 'form-control',
                    'placeholder' => 'Password',
                    'data-trigger'  => 'change',
                    'data-required' => 'true',
                    'data-type'     => 'password'
                    )
            ))
            ->add('send', 'submit', array(
                'attr'  => array(
                    'class' => 'btn btn-primary',
                    'placeholder' => 'Send'
                    )
            ));
    }

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

}

有谁知道,是否可以在此处设置表单属性?例如。类="东西"数据出头="真"

非常感谢您的任何建议

1 个答案:

答案 0 :(得分:1)

如果我理解您的问题,您需要在主表单上设置属性。然后,您应该依赖$builder->setAttribute('data-custom', 'foo')但是,请注意,此解决方案将在包装表单的div上设置属性而不是表单标记本身。

如果您想在表单标记上添加属性,则需要通过{{ form_start(form, { 'attr': { 'data-custom': 'foo' }}) }}

在模板中执行此操作