そのため、Symfony2.3 で実装する「ベスト プラクティス」となる次の問題の解決策を探しています。
状況の簡単な説明: 独自のクラス ("ProductType") で定義されたフォームを取得しました。フォームには、別のテーブルにリンクされたフィールドが含まれています。ユーザーはそのリストから 1 つの値を選択する必要があります。
ユーザーが選択できる値を制限したい。データベースにあるすべてのオプションが関連しているわけではありません。データベース内の情報とフォームに既に適用されている現在の値に基づいて、リスト内のオプションを動的に減らす必要があります。これを行うには、フォームの内容を変更する「サブスクリプション」を追加します。しかし、このサブスクリプションでは、データベース/Doctrine リポジトリにアクセスして、ユーザーが選択できるリストを決定する必要があります。
したがって、サブスクリプションに Doctrine を注入する必要がありますが、Type クラスでは利用できません。
これに対する最善の解決策は何ですか?- Subscription クラスを Symfony のサービスとして定義し、そのルートを介して Doctrine を注入しますか? - 他に何か?
残念ながら、Symfony のドキュメントはこれについてあまり明確ではありません。