创建自定义表单类型

自定义表单类型是定义可重用表单组件的类。可以嵌套自定义表单组件以创建复杂的表单。

你可以使用自己的类型来使代码更具可读性,可重用性和可维护性,而不是使用表单生成器在控制器中创建表单。

创建一个表示表单类型的类

// src/AppBundle/Form/ExampleType.php
namespace AppBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\NumberType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;

class ExampleType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options) {
        $builder
             ->add('value', TextType::class, array('required' => false))
             ->add('number', NumberType::class)
             ->add('string', TextType::class)
             ->add('save', SubmitType::class)
        ;
    }
}

你现在可以在控制器中使用你的表单:

use AppBundle\Form\ExampleType;

// ...

$form = $this->createForm(ExampleType::class, $data)