Symfony выполняет несколько запросов для заполнения повторяющегося поля формы - PullRequest
0 голосов
/ 13 февраля 2011

Мой проект Symfony имеет объект A, который имеет отношение один-ко-многим с объектом (ами) B, т.е.

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

Есть ли способ указать symfony, что ему нужно толькозапустить этот запрос один раз?

1 Ответ

2 голосов
/ 13 февраля 2011

Вы можете получить этот результат из кеша результатов Доктрины .Для этого необходимо настроить кэш результатов, а затем активировать его для запроса, соответствующего sfWidgetFormChoice (или это sfWidgetFormDoctrineChoice?).Проблема в том, что у вас нет доступа к этому коду.Или нет?Посмотрите на параметры sfWidgetFormDoctrineChoice.Вы можете указать метод через опцию "table_method".Все, что вам нужно сделать, это написать запрос и активировать кэш результатов, и все готово.Удачи!

...