0

私の symfony プロジェクトには、オブジェクト B と 1 対多の関係を持つオブジェクト A があります。

A
 B
 B
 B
A
 B
A
 B
 B

A のフォームでは、$this->embedRelation('B') を使用して B を入力/編集するためのフォームを表示しています。

B のフォームには、データベースから自動的に入力される自動生成された sfWidgetFormChoice が含まれています。ただし、フォーム A に埋め込まれたフォーム B が複数出現する場合、symfony はデータベースに複数回クエリを実行して、sfWidgetFormChoice 選択コントロールを設定します。

SELECT b.bid AS b__bid, b.blah AS b__blah, FROM blah b
SELECT b.bid AS b__bid, b.blah AS b__blah, FROM blah b
SELECT b.bid AS b__bid, b.blah AS b__blah, FROM blah b
SELECT b.bid AS b__bid, b.blah AS b__blah, FROM blah b
SELECT b.bid AS b__bid, b.blah AS b__blah, FROM blah b

このクエリを 1 回だけ実行する必要があることを symfony に示す方法はありますか?

4

1 に答える 1

2

この結果は、Doctrineの結果キャッシュから取得できます。これを実現するには、結果キャッシュを構成してから、sfWidgetFormChoice(またはsfWidgetFormDoctrineChoice?)に対応するクエリに対してアクティブ化する必要があります。問題は、このコードにアクセスできないことです。それともあなたはそうではありませんか?sfWidgetFormDoctrineChoiceのオプションを見てください。オプション「table_method」を使用してメソッドを指定できます。クエリを記述し、その上で結果キャッシュをアクティブ化するだけで完了です。幸運を!

于 2011-02-13T15:38:18.827 に答える