表单configureOptions()设置数据类

时间:2016-01-29 20:17:36

标签: forms symfony

假设以下代码:

class MyInventory extends AbstractType
{
    /**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('uom')
            ->add('min')
            ->add('max')
            ->add('price')
            ->add('number')
            ->add('description')
        ;
    }

    /**
     * @param OptionsResolver $resolver
     */
    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'MyCompany\MyBundle\Entity\Inventory'
        ));
    }
}

设置" data_class"的目的是什么?到有问题的实体的字符串名称空间/类名?为什么不实例化实体并注入它?我认为表单类现在神奇地为你做了这个 - 但是通过服务和DiC可以实现同样的事情(尽管有点清楚或根据Symfony规范)?

只是好奇???

1 个答案:

答案 0 :(得分:2)

我的猜测是Symfony Forms将加载类元数据,因此它可以在以后执行验证和数据复制。它并不真正需要一个实例 - 只需要元数据。