私のモデルには 1 対多の一方向関係があります。AUser
には多くの の 1 つがありStatus
ます。
doctrine を使用すると、これらは結合列の 1 つに一意の制約を持つ単方向の多対多としてマップされます。
symfony フォームを使用してステータス テーブルからステータスを選択し、フォームを送信して、symfony に関係を保持させたいと思います。
私は2つのアプローチを試しました:
ただし、エンティティ フォーム タイプを使用すると、エラーが発生します (多対多の関係の教義
ArrayCollection
では、単一のステータス オブジェクトではなくインスタンスを受け取ることを想定しているためです。コレクション エンティティ オブジェクトの使用。このアプローチを使用すると、id を持つ空の div が
status
フォームにレンダリングされます。ステータスオプションを含む選択ボックスが表示されると予想していました。
これがコードです。どこが間違っていますか?
エンティティ コード:
/**
* @ORM\ManyToMany(targetEntity="Status")
*/
protected $status;
フォーム タイプ コード:
$builder->add('status', 'collection', array(
'type' => 'entity',
'allow_add' => true,
'options' => array(
'class' => 'SunflyCoreBundle:Status',
'property' => 'name',
))
);
フォーム テンプレート コード:
<form action="{{ path('_product_create_process') }}" method="post" {{ form_enctype(form) }}>
{{ form_widget(form) }}
<input type="submit" />
</form>
ページに表示される HTML:
<div id="product_status" data-prototype="STUFF THAT WONT RENDER ON SO"></div>