0

そのため、Symfony2.3 で実装する「ベスト プラクティス」となる次の問題の解決策を探しています。

状況の簡単な説明: 独自のクラス ("ProductType") で定義されたフォームを取得しました。フォームには、別のテーブルにリンクされたフィールドが含まれています。ユーザーはそのリストから 1 つの値を選択する必要があります。

ユーザーが選択できる値を制限したい。データベースにあるすべてのオプションが関連しているわけではありません。データベース内の情報とフォームに既に適用されている現在の値に基づいて、リスト内のオプションを動的に減らす必要があります。これを行うには、フォームの内容を変更する「サブスクリプション」を追加します。しかし、このサブスクリプションでは、データベース/Doctrine リポジトリにアクセスして、ユーザーが選択できるリストを決定する必要があります。

したがって、サブスクリプションに Doctrine を注入する必要がありますが、Type クラスでは利用できません。

これに対する最善の解決策は何ですか?- Subscription クラスを Symfony のサービスとして定義し、そのルートを介して Doctrine を注入しますか? - 他に何か?

残念ながら、Symfony のドキュメントはこれについてあまり明確ではありません。

4

2 に答える 2

0

クエリビルダーを使用する必要があるため、リポジトリが必要です。そして、そうするにはただ使用します

use Doctrine\ORM\EntityRepository; 

ドキュメントで説明されているように、ProductTypeで

于 2013-05-31T14:00:39.347 に答える