mongoDB ドキュメントで Symfony 2 のフォームを使用する際に問題があります。
タグへのリレーション oneToMany (参照) を持つ最初のドキュメント (投稿) を表すフォームを作成しようとしています。
関係は次のように宣言されます。
/**
* @Assert\Collection
* @MongoDB\ReferenceMany(targetDocument="Acme\ManagerBundle\Document\Tags")
*/
protected $tags;
タグには ID と名前があります。
私はそれを機能させるために多くのことを試みました
$form = $this->createFormBuilder($tag)->add('tags', 'choice', array('choices' => $tags, 'multiple' => true, 'expanded' => true, 'empty_value' => true, ))
フォームには選択肢が表示されますが、フォームが送信されると無効になり、このエラーが表示され続けます。
「フィールド "0"、"1"、"2" は予期されていませんでした」
私もこれを試しました:symfony2フォームの選択とmongodb
しかし、それの使用はちょっと混乱しています
アップデート
これは、投稿が送信された後に得られるものです:
object(Doctrine\Common\Collections\ArrayCollection)#795 (1) {
["_elements":"Doctrine\Common\Collections\ArrayCollection":private]=>
array(2) {
[0]=>
object(Acme\ManagerBundle\Document\Tags)#723 (2) {
["id":protected]=>
string(24) "4f7a0eb1ecd111b99c3d2f25"
["name":protected]=>
string(6) "Fruits"
}
[1]=>
object(Acme\ManagerBundle\Document\Tags)#720 (2) {
["id":protected]=>
string(24) "4f7a0ec7ecd111b99c3d2f26"
["name":protected]=>
string(10) "Vegetables"
}
}
}
これで、「フィールド「0」、「1」、「2」は予期されていませんでした」という理由がわかりましたが、Symfony がそれを処理しない理由がわかりません。
可能なバンドルを探してきましたが、何もありません
私のオブジェクトと関連するオブジェクトを水和させる素敵なフォームを作成する方法がわかりません。この問題の解決策や、これを解決するための他のアイデアを持っている人はいますか?
本当にありがとう !