0

与えられたエンティティ

User
Adress

そしてそれらの間の1対1の関係、私はなぜ設定しなければならなかったのか疑問に思いました

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 に答える