给定实体
User
Adress
和他们之间的一对一关系,我想知道为什么要设置
public function getDefaultOptions(array $options) {
return array('data_class' => 'My\Bundle\Entity\Address');
}
在AdressType
课程中。否则,当我想从User::setAdress(Adress $adress)
合并实体的表单时,会向UserType
方法发送数组而不是实体。
对我而言,我必须陈述实体并且symfony2不会“假设”这一点似乎很奇怪。
有人可以告诉我为什么要做出这样的设计选择吗?
答案 0 :(得分:1)
AddressType应作为独立的FormType处理,它可以完全自行运行。 您如何期望FormBuilder简单地猜测要为通用表单类型加载哪个(如果有的话)实体类?
我想FormBuilder可以查看具有自定义FormType的字段是否对应于实体字段,并且该字段是关系实体,然后相应地重新映射数组数据,但为避免编写data_class似乎是一个巨大的开销。