data_class参数背后的基本原理是什么?

时间:2012-09-07 16:16:29

标签: symfony

给定实体

User
Adress

和他们之间的一对一关系,我想知道为什么要设置

public function getDefaultOptions(array $options) {
    return array('data_class' => 'My\Bundle\Entity\Address');
}

AdressType课程中。否则,当我想从User::setAdress(Adress $adress)合并实体的表单时,会向UserType方法发送数组而不是实体。

对我而言,我必须陈述实体并且symfony2不会“假设”这一点似乎很奇怪。

有人可以告诉我为什么要做出这样的设计选择吗?

1 个答案:

答案 0 :(得分:1)

AddressType应作为独立的FormType处理,它可以完全自行运行。 您如何期望FormBuilder简单地猜测要为通用表单类型加载哪个(如果有的话)实体类?

我想FormBuilder可以查看具有自定义FormType的字段是否对应于实体字段,并且该字段是关系实体,然后相应地重新映射数组数据,但为避免编写data_class似乎是一个巨大的开销。