我想使用 while(( 循环而不是最常见的foreach((遍历结果集
例如,如果我有此代码:
$articles = $this->Articles->find();
foreach ($articles as $article) {
echo $article->name;
}
如何使用 while 循环访问$articles行?
我已经尝试使用 next(( 或$articles->next((遍历它,但没有成功。
我不确定您是否真的需要使用while()
循环来实现您要实现的目标,但要回答这个问题,您必须首先获取结果集,然后将其Iterator::valid()
实现用于循环条件,这是获取当前结果的地方,然后您可以通过current()
访问它。然后使用next()
完成前进光标。
$query = $this->Articles->find();
$resultSet = $query->all();
while ($resultSet->valid()) {
$article = $resultSet->current();
// ...
$resultSet->next();
}
另请参阅API> \Cake\ORM\ResultSet