创建自定义表单类型
自定义表单类型是定义可重用表单组件的类。可以嵌套自定义表单组件以创建复杂的表单。
你可以使用自己的类型来使代码更具可读性,可重用性和可维护性,而不是使用表单生成器在控制器中创建表单。
创建一个表示表单类型的类
// 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)