ZEND Этот результат является набором результатов только для пересылки, вызов rewind() после продвижения вперед не поддерживается

У меня есть эта ошибка после этого кода:

Этот результат является набором результатов только для пересылки, вызов rewind() после продвижения вперед не поддерживается.

Page.phtml:

foreach ($company as $key => $value) 
                        {
                            foreach ($userfeature as $key => $data)
                            { 
                                echo "<tr>";
                                if($value->site_id == $data->site_id)
                                {
                                    echo "<td>".$value->party_code." ".$value->party_name. "</td>";
                                }
                            }
                        }

controller.php

public function indexsiteuserAction()
{
    $this->layout('layout/admin');
    $compteAdmin[] = $this->admincompte();
    $user_id = (int) $this->params()->fromRoute('id', 0);
    if (!$user_id) 
    {
        return $this->redirect()->toRoute('administrateur', array('action' => 'adduser'));
    }
    try 
    {
        $user = $this->getUserTable()->getUser($user_id);
        $userfeature = $this->getAdminUserFeatureTable()->afficheruserFeature($user_id);
    }
    catch (\Exception $ex) 
    {
        return $this->redirect()->toRoute('administrateur', array('action' => 'indexuser'));
    }

    return new ViewModel(
        array(
            'user_id' => $user_id,
            'user'=> $user,
            'userfeature' => $userfeature,
            'compteAdmin' => $compteAdmin,
            'company' => $this->getCompanyTable()->fetchAll(),
    ));
}

Userfeaturetable.php

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

companyTable.php

public function fetchAll()
{
    $resultSet = $this->tableGateway->select();
    return $resultSet ;
}

Почему я не имею права вставлять два моих ' foreach ()'?

1 ответ

Решение

Вам нужно буферизовать результат.

public function fetchAll()
{
    $resultSet = $this->tableGateway->select();
    $resultSet->buffer();

    return $resultSet ;
}
Другие вопросы по тегам