【问题标题】:symfony executing multiple queries to populate repeated form fieldsymfony 执行多个查询以填充重复的表单字段
【发布时间】:2011-02-13 14:08:17
【问题描述】:

我的 symfony 项目有一个对象 A,它与对象 B 是一对多的关系,即

A
 B
 B
 B
A
 B
A
 B
 B

在 A 的表单中,我使用 $this->embedRelation('B') 来显示用于输入/编辑 B 的表单。到目前为止一切正常。

B 的表单包含一个自动生成的 sfWidgetFormChoice,它是从数据库中自动填充的。但是,当表单 B 多次出现在表单 A 中时,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 表明它只需要运行一次这个查询?

【问题讨论】:

    标签: symfony1 doctrine symfony-forms


    【解决方案1】:

    您可以从Doctrine's result cache 获取此结果。为此,您必须配置结果缓存,然后为对应于 sfWidgetFormChoice(或者是 sfWidgetFormDoctrineChoice?)的查询激活它。问题是您无权访问这段代码。或者你不是吗?查看 sfWidgetFormDoctrineChoice 的选项。您可以通过选项“table_method”指定方法。您所要做的就是编写查询并在其上激活结果缓存,然后您就完成了。祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-03
      • 2019-07-01
      • 2018-10-01
      • 1970-01-01
      • 2021-11-30
      • 2010-10-17
      • 1970-01-01
      • 2021-12-10
      相关资源
      最近更新 更多