0

给定实体

User
Adress

以及它们之间的一对一关系,我想知道为什么必须设置

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

AdressType课堂上。否则,User::setAdress(Adress $adress)当我想从UserType.

对我来说,我必须声明实体并且这不是 symfony2 的“假设”,这似乎很奇怪。

有人能告诉我为什么做出这种设计选择吗?

4

1 回答 1

1

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

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

于 2012-09-07T16:25:34.293 回答