2013-04-11 5 views
1

Я пытаюсь получить некоторые строки из моей базы данных, где поле имеет определенное значение. Я попробовал этот код:Zend Framework 2 получить несколько строк

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 вара, без хорошего результата.

Я новичок в ZF2

Спасибо

+1

попробовать Еогеасп на Rowset – Abadis

ответ

3

Вы должны понять, что вы на самом деле делаете. Пожалуйста, вернитесь к official manual и снова проведите через него.

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

$rowset будет Zend\Db\ResultSet\ResultSet. Этот ResultSet содержит все Rows вашего указанного запроса.

$row = $rowset->current() 

С помощью этой линии вы получаете первый (самый ток) вашего ResultSet. Вместо проверки на if (!$row) вы можете перейти на if(0 === $rowset->count()), а затем вы вернете только $rowset. Как @Abadis отметил, над ResultSet вы просто положить foreach -loop, чтобы получить доступ к каждому из вашего Rows

+0

Weird, я попробовал это прошлой ночью, без результата. Пробовал это снова, и теперь его работа. Я думаю, что было немного до поздней ночи! Благодаря!! – Royw