Я использую sfPropelORMPlugin. Lazyload в порядке, если я работаю с одним объектом на веб-странице. Но если есть сотни, я получаю сотни отдельных запросов БД. Я хотел бы полностью отключить lazyload или отключить его для необходимых столбцов на тех особенно тяжелых страницах, но пока не смог найти пути.Как изменить модель lazyloadness во время выполнения в Symfony?
ответ
Добавлен метод утилиты, чтобы указать, какие столбцы я хочу загрузить. Использование «псевдо столбцов» для этого типа запросов БД. Кроме того, у меня есть переопределенный гидрат(), чтобы понять эту «разметку». Все были хорошими, пока я не узнал, что даже если данные гидратированы, symfony не поймет этого и не позволит вам использовать его по назначению.
PS соединение никогда не рассматривалось как опция, потому что сайт является видом высокой нагрузки.
Вы должны join
все ваши отношения, когда вы строите свой запрос, таким образом вы получите все данные в одном запросе. Обратите внимание, что вы должны использовать joinWithRelation()
, где Relation
- это связанное имя таблицы.
Разрабатывая ответ Уильяма Дюранна, возможно, вам стоит также взглянуть на функцию Propel doSelectjoinAll(), которая должна предварительно загрузить все объекты, связанные с вашими отношениями. Просто имейте в виду, что это может быть дорогостоящим, поскольку оно относится к памяти.
Другой метод - создать пользовательские критерии с необходимыми объединениями, а затем использовать ручную гидратную технику для добавления к базовому объекту. Я делаю это часто, когда мне нужны данные, используя агрегаты или другие столбцы, которые не точно сопоставлены с объектами. Существует множество примеров гидратов().
- 1. изменить модель simulink во время выполнения
- 2. Как изменить модель данных подкласса QSqlQueryModel во время выполнения?
- 3. изменения JTable модель во время выполнения
- 4. Можно ли изменить модель Backbone.Collection во время выполнения
- 5. Изменить язык во время выполнения
- 6. Изменить SelectedValuePath во время выполнения
- 7. изменить сборку во время выполнения?
- 8. Изменить вид во время выполнения
- 9. Изменить web.config во время выполнения
- 10. Изменить string.xml во время выполнения
- 11. Как изменить конфигурацию log4j во время выполнения
- 12. Как изменить путь просмотра во время выполнения
- 13. GWT как изменить css во время выполнения
- 14. как изменить persistence.xml во время выполнения
- 15. Как изменить шрифт приложения во время выполнения?
- 16. Как изменить таймфрейм изображения во время выполнения
- 17. Как изменить свойства XML во время выполнения?
- 18. Как изменить раскладку во время выполнения?
- 19. Как изменить log4j appender во время выполнения?
- 20. Как изменить условие «Сумма» во время выполнения?
- 21. Как изменить уровень slf4j во время выполнения?
- 22. NHibernate - Как изменить схемы во время выполнения?
- 23. Как изменить имя таблицы во время выполнения
- 24. StackExchange.Redis - Как изменить конфигурацию во время выполнения?
- 25. Как изменить цвет textArea во время выполнения?
- 26. Как изменить конфигурацию NgModule во время выполнения
- 27. Как изменить местоположение журнала во время выполнения
- 28. Как изменить перечисление во время выполнения (Java)
- 29. Как изменить maxFrameSize JavaCameraView во время выполнения
- 30. Как изменить модальность QDialog во время выполнения?