【问题标题】:Size of a Propel On Demand CollectionPropel On Demand 系列的大小
【发布时间】:2014-11-12 16:03:05
【问题描述】:

我通过调用将 OnDemandCollection 与 Propel 结合使用

->setFormatter(ModelCriteria::FORMAT_ON_DEMAND)

我的查询。

这很棒,因为它可以根据需要处理尽可能多的结果(多达 200 000 个测试)。但是我需要得到结果的数量。

生成的 Propel Collection 的大小为 -1(可能是因为每一行都是按需加载的),所以我尝试了

count($collection)
$collection->count()
$ite_cloned = clone $collection->getIterator()
iterator_count($ite_cloned)

但没有人返回我的计数。

【问题讨论】:

    标签: php collections propel


    【解决方案1】:

    您不应在此集合中使用 count,因为它是按需提供的,而且速度非常慢。更好的是使用您的查询对象并在其上触发->count()

    【讨论】:

    • 在这种情况下查询将被执行两次,我想避免这种情况,因为这是一个巨大的查询
    • 当然可以,但是比收齐所有物品在PHP这边检查要快。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-24
    • 2017-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-27
    相关资源
    最近更新 更多