【问题标题】:How to force refetch of association results in Propel (also Doctrine) - Symfony 1.4?如何在 Propel(也是 Doctrine)- Symfony 1.4 中强制重新获取关联结果?
【发布时间】:2012-08-04 15:28:34
【问题描述】:

我有 2 个实体:父级与子级具有一对多关系。

我使用 Propel 自动生成的 $parent->getChilds() 方法来获取所有子项。

之后我以不同的方法手动添加(或删除)一些新的孩子:

$child = new Child();
$child->setParentId($parent->getId());
$child->save();

现在,如果我回想 getChilds 方法,我会得到相同的原始子代(也没有对数据库的额外查询)。

我知道这是更好的行为和更有效的方式,但是有没有办法强制重新获取?

谢谢。

【问题讨论】:

    标签: php orm symfony1 propel


    【解决方案1】:

    $parent->reload(true)

    应该在推进中工作

    【讨论】:

    • 是的,reload 更好,从未听说过 rehydrate :)
    • 补水是个意外 - 在某处有这个功能 - 但它可能已被删除:)
    • Doctrine_Record 上没有定义 reload 函数,链接见我的回答。
    • @Maerlyn 此anwser 仅与Propel 相关。因为你的只是教义相关的。
    • 哦,我的错,我看到了教义标签并立即认为问题是关于教义的,而在文本中操作员说他正在使用推进。
    【解决方案2】:

    从未使用过,但您可能正在寻找Doctrine_Record#refresh

    【讨论】:

      猜你喜欢
      • 2010-12-22
      • 1970-01-01
      • 2013-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-24
      • 2015-12-23
      • 1970-01-01
      相关资源
      最近更新 更多