假设以下代码:
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规范)?
只是好奇???
答案 0 :(得分:2)
我的猜测是Symfony Forms将加载类元数据,因此它可以在以后执行验证和数据复制。它并不真正需要一个实例 - 只需要元数据。