建立自定義表單型別

自定義表單型別是定義可重用表單元件的類。可以巢狀自定義表單元件以建立複雜的表單。

你可以使用自己的型別來使程式碼更具可讀性,可重用性和可維護性,而不是使用表單生成器在控制器中建立表單。

建立一個表示表單型別的類

// 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)