f3框架:Cursor方法`load`的意外行为

时间:2017-02-05 21:11:10

标签: orm fat-free-framework

我在循环中使用load方法来执行一组查询,每个查询都像这样:

$events->load( "`user_id` = {$users->id} AND `action` = \"view\"");

其中$events映射器,每个加载的记录在日志表中代表“事件”(当然)。

load调用之后,我会迭代找到的记录:

while( ! $events->dry() )
{
    // do something with $event

    $events->next();
}

当(内部)while循环终止另一个主循环迭代时,执行load再次调用。

此代码不会产生预期的行为,因为某些事件显然未加载。

我可以通过在$events->reset()声明之前放置$events->first()$events->load来解决此问题。

但是来自documentation

  

负载

           

映射到符合条件的第一条记录

     

[...]它使用find()来加载记录,并使第一条记录(mapper对象)与活动记录的条件匹配。通过移动光标指针

,可以将匹配相同条件的其他记录设置为活动记录

现在问题:这是 f3 错误还是我错过了什么?

由于reset()first()(显然)都解决了问题,哪一个更合适?

1 个答案:

答案 0 :(得分:0)

这是旧版 F3 (3.4)的问题。

更新到 3.6 解决了这个问题。