我试图从数据库中获取一些行,其中一个字段有一个特定的值。
我试过这个密码:

public function getJewelrybyCollection($collection)
{
    $rowset = $this->tableGateway->select(array('collection' => $collection));
    $row = $rowset->current();
    if (!$row) {
        throw new \Exception("Could not find collection $collection");
    }
    return $row;
}

这是有效的,但由于$row = $rowset->current();
我试图返回$rowsetvar,但没有得到好的结果。
我是ZF2的新手
谢谢你

最佳答案

你需要明白你在做什么。请参考official manual并再次尝试。

$rowset = $this->tableGateway->select(...);

$rowset将是一个Zend\Db\ResultSet\ResultSet。此ResultSet包含指定查询的所有Rows
$row = $rowset->current()

通过这一行,您将获得第一个(最新的)Row。您可以切换到ResultSet,然后只返回if (!$row),而不是检查if(0 === $rowset->count())。正如@abadis所指出的,在$rowset上只需放置一个ResultSet-循环就可以访问每个foreach

10-07 19:04