symfony2とdoctrine2を使用したフォームの継承に問題があります。これが事です:
users
名前やメールアドレスなどのフィールドがいくつかあるだけで、特別なものは何もありません。
Ferncoder\Devis\UserBundle\Entity\users:
type: entity
table: null
fields:
id:
type: integer
id: true
unsigned: true
nullable: false
generator:
strategy: AUTO
name:
type: string
length: '45'
nullable: false
このテーブルにはエンティティcraftsMans
との関係OneToOneがあるusers
エンティティがあります。
Ferncoder\Devis\UserBundle\Entity\craftsMan:
type: entity
oneToOne:
user:
targetEntity: users
joinColumn:
name: user_id
referencedColumnName: id
table: null
fields:
id:
type: integer
id: true
unsigned: true
nullable: false
generator:
strategy: AUTO
usersType
2つのフォームクラスとを生成しましcraftsmanType
た。私のcraftsManを作成するために、私は次のようにフォームを作成しました:
class craftsManType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('user', new usersType())
->add('company', 'text')
->add('fieldOfActivities', 'text')
->add('legalForm', 'text')
->add('siret', 'text')
->add('website', 'text')
->add('description', 'textarea')
->add('services', 'textarea')
->add('employee', 'text')
->add('phone', 'text')
;
}
フィールドの値を取得するまで、フォームはかっこよく見えます。問題は、私の'user'
フィールドがエンティティではなく配列として返されることです。私は何かを逃しましたか?フィールドからユーザーオブジェクトを生成するにはどうすればよいですかuser
。オブジェクトを作成することは、すべての属性を設定することが最善の方法であるとは思えません。
たぶん私は間違っています。
ありがとう、