如何检查有效执行fetchAllAssoc的Phalcon ID?

问题描述

在使用以前有效的代码迁移到Phalcon v3之后,我使用的Phalcon很少,并且在某些代码上遇到了麻烦。

foreach($this->facets as $k => $facet) {
    $facets[$facet] = $results->getNext()->fetchAllAssoc();
}

现在的问题是,我可以看到,当$ results-> getNext()返回结果为空且num_rows为0的对象时,链接的fetchAllAssoc()会给出异常。

如何重新编码此代码,以便除非getNext()返回有效结果,否则fetchAllAssoc()不会完成?

解决方法

这就是我最终要做的。可能不是一个很好的解决方案,但它可以工作。我很高兴看到改进建议。

foreach($this->facets as $k => $facet) {
  $tmp_result = $results->getNext();
  $has_row_to_fetch = $results->valid();
  if (!$has_row_to_fetch) {
     break;    
  }
  $facets[$facet] = $tmp_result->fetchAllAssoc();
  //$facets[$facet] = $results->getNext()->fetchAllAssoc();
}