我试图从数据库中获取一些行,其中一个字段有一个特定的值。
我试过这个密码:
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();
我试图返回
$rowset
var,但没有得到好的结果。我是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