在Symfony v3.2中,我正在使用一个带有多个EntityType字段的表单,这些字段有数百个选项 - 每个选项都是相对较大的对象。由于它们不经常更改,我想在Symfony中使用一些缓存,只加载一次并继续向EntityType提供数据。
我已经通过仅获取所需字段并将其保存到缓存中来减小了提供给它的数据大小。
当我从缓存中获取数据时,我不能直接使用
在这种情况下,最好的方法是什么?只是完全从表单中删除EntityType(对于速度敏感的页面),并使用ChoiceType(这也包括在代码的许多部分中更改逻辑)?还有比那更好的东西吗?
到目前为止,我在SO或其他地方没有找到任何解决方案。
我已经通过仅获取所需字段并将其保存到缓存中来减小了提供给它的数据大小。
当我从缓存中获取数据时,我不能直接使用
choice_list
将其提供给EntityType,因为它与ObjectManager分离,并出现错误(“传递给选择字段的实体必须受到管理”)。要重新附加它,我可以使用ObjectManager->merge(),但这意味着对每个被重新合并和重新附加到管理器的项目进行DB调用。这违背了缓存的目的。在这种情况下,最好的方法是什么?只是完全从表单中删除EntityType(对于速度敏感的页面),并使用ChoiceType(这也包括在代码的许多部分中更改逻辑)?还有比那更好的东西吗?
到目前为止,我在SO或其他地方没有找到任何解决方案。