将查询结果遍历为while循环

时间:2017-07-23 13:05:21

标签: cakephp orm iterator resultset cakephp-3.x

我想使用 while()循环遍历结果集,而不是最常见的 foreach()

如果我有这个代码,例如:

$articles = $this->Articles->find();
foreach ($articles as $article) {
   echo $article->name;
}

如何使用while循环访问$ articles的行?

我已经尝试使用 next() $ articles-> next()来遍历它,但没有成功。

1 个答案:

答案 0 :(得分:1)

我不确定你是否真的需要使用while()循环来实现你想要实现的目标,但要回答这个问题,你必须首先得到结果集,然后使用它{ {3}}实现循环条件,这是获取当前结果的地方,然后您可以通过current()访问该结果。然后使用next()完成光标前进。

$query = $this->Articles->find();
$resultSet = $query->all();

while ($resultSet->valid()) {
    $article = $resultSet->current();
    // ...
    $resultSet->next();
}

另请参阅 Iterator::valid()