コレクションを使用してフォームを作成しようとすると問題が発生します。私は現在のシナリオが何であるかを説明します。Symfony2 - DocumentChoiceListとMongoDB
製品とカテゴリという2つの基本オブジェクトを作成しました。私はそれらのために2つのタイプを作成しました:ProductType、CategoryType。
私は3つのカテゴリと1つの製品を持っています。私は製品の最初の2つのカテゴリを関連付けました。したがって、製品には2つのカテゴリが関連付けられています。
私は製品のフォームを作成したいと思います。このフォームでは、html selectコントロールに製品のカテゴリのみを表示したいので、ユーザーはこれらのデータで将来の操作を行うことができます。
私はあなたに要点をまとめます。
マイ製品クラスは、私が持っている私のでProductTypeで
class Product { ... @EmbedMany(targetDocument="Acme\StoreBundle\Document\Category") protected $categories; ... }
があります
public function buildForm(FormBuilder $builder, array $options) { $builder->add('id') ->add('name') ->add('price') ->add('categories', 'document', array( 'class' => 'Acme\StoreBundle\Document\Category', 'choices' => $builder->getData()->getCategories()->toArray(), 'multiple' => 'true', 'property' => 'name' )) ;
}
私はすべてを試したし、最も正確な半分ソリューションは文書としてでProductTypeのカテゴリプロパティを作成し、データがコントローラから来るバインドを通じてオプションを選択することでした。
点はオプションコントロールの、のUnitOfWorkクラス、ないIDS元カテゴリオブジェクトのでspl_object_hashセットされ、この溶液IDSです。
私の以前のtryings:
私は、以前の選択肢なしで文書を使用するとき、私は問題ありませんが、私は製品を所有しているカテゴリのみをしたいです。
私は(カテゴリタイプを関連付ける)カテゴリの一覧を表示するコレクションを使用するとき、私は問題ありませんが、私は選択制御としてこれを表示する方法がわかりません。
私はCategoryオブジェクトがどの製品の参照を持っていないので、オブジェクトのみが、製品ID Xを持って照会することはできませんので、私はquery_builder以上のカテゴリークラスを使用することはできません(とそのとおり)。
これを解決する方法はありますか?
ありがとう、 リッキー。
私の後の回答には申し訳ありません。ご説明をいただき、ありがとうございます。 – user957066