1

我正在尝试从我的数据库中获取一些行,其中字段具有特定值。我试过这段代码:

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的新手

谢谢

4

1 回答 1

3

你需要了解你实际上在做什么。请参考官方手册并再次完成它。

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

$rowset是一个Zend\Db\ResultSet\ResultSet. 这ResultSet包含Rows您指定的所有查询。

$row = $rowset->current()

Row使用这条线,您将获得ResultSet. 而不是检查if (!$row)你可以切换到if(0 === $rowset->count()),然后你只会返回$rowset. 正如@Abadis 指出的那样,ResultSet您只需放置一个foreach-loop 即可访问您的每一个Rows

于 2013-04-11T07:26:19.997 回答