В настоящее время я работаю над проектом Zend 2, и у меня есть некоторые проблемы с foreach внутри другого foreach. Вот мой код:foreach в пределах foreach не может изменить имя псевдонима
foreach($test as $one){
echo $one->name;
foreach($place as $param){
echo $param['name_place'];
}
unset($param);
}
Я получаю следующее сообщение об ошибке:
Fatal error: Uncaught exception 'Zend\Db\Adapter\Exception\RuntimeException' with message
'This result is a forward only result set, calling rewind() after moving forward is not supported' in
/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Pdo/Result.php:154
Stack trace: #0 /module/Check/view/check/check/choix-niveau.phtml(25):
Zend\Db\Adapter\Driver\Pdo\Result->rewind() #1 /vendor/zendframework/zendframework/library/Zend/View/Renderer/PhpRenderer.php(506):
include('/var/www/vhosts...') #2 /vendor/zendframework/zendframework/library/Zend/View/View.php(205):
Zend\View\Renderer\PhpRenderer->render(Object(Zend\View\Model\ViewModel))
#3 /vendor/zendframework/zendframework/library/Zend/Mvc/View/Http/DefaultRenderingStrategy.php(103):
Zend\View\View->render(Object(Zend\View\Model\ViewModel)) #4 [internal function]:
Zend\Mvc\View\Http\DefaultRenderingStrategy->render(in /vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Pdo/Result.php on line 154
и модели от 2 foreachs:
public function getAllPlace()
{
$select = new Select();
$select->from('place')
->join('level', 'level.id = place.id_level', array('nom'))
->order('level.id');
$statement = $this->tableGateway->getSql()->prepareStatementForSqlObject($select);
$resultSet = $statement->execute();
$resultSet->buffer();
return $resultSet;
}
И вторая модель
public function getAllTry()
{
$select = new Select();
$select->from('try')
->order('id');
$resultSet = $this->tableGateway->selectwith($select);
$resultSet->buffer();
return $resultSet;
}
Проблема исходит от $place as $param
, потому что если код $place as $place
, ошибок нет. Но мне нужно изменить переменную имени, чтобы отключить его.
Спасибо за аванс!
PokeRwOw
EDIT:
В $ тесте массива есть 3 значения и в массиве $ месте есть 2 значения. Таким образом, результат после запуска:
- First value of $test
- First value of $place
- Second value of $place
-Second value of $test
И вот здесь, где заканчивается. Так что, конечно, он подходит для курсора второго foreach или что-то вроде этого?
Если я два Еогеасп отдельно и не imbrique его рабочих ...
Жизнь $ param ограничена только внутренним foreach, вы не можете отключить это вне цикла – jitendrapurohit
Проблема не в этом, я удалил это и получил ту же ошибку – PokeRwOw
Вы должны проверить этот http: // stackoverflow.com/questions/18567219/this-result-is-a-forward-only-result-set-calling-rewind-after-moving-forward/18572629#18572629 об исключении, которое вы получаете – jitendrapurohit