PhpUnit: «Неверное значение, переданное для SetPost ()» при прохождении zend_db_table_row_abstract, преобразованный с помощью toarray ()
-
28-09-2019 - |
Вопрос
Следующий код не удается бросает zend_controller_Exception («Неверное значение, передаваемое на SETPOST (); должен быть либо массив значений или пары ключа / значения»)
/** Model_Audit_Luminaire */
$luminaireModel = new Model_Audit_Luminaire();
if (!$fixture = $luminaireModel->getScheduleItem($scheduleId)) {
$this->fail('Could not retrieve fixture from database');
}
$fixtureArray = $fixture->toArray();
$this->getRequest()
->setMethod('POST')
->setPost($fixtureArray);
Я сделал var_dump (), чтобы гарантировать, что $ FixTurearray был правильным типом, и правильно отформатирован ... Нет видимых проблем.
Решение
Кто-нибудь из столбцов в вашем расписании элемент ряд нуля?
То setPost()
Метод вызывает сам для каждой пары ключа / значения, которую вы проходите в массиве. Но если какое-либо значение равно нулю, он бросает исключение.
Возможно, вам придется петлю на массиве и setPost()
только значения, которые не нулевые:
$this->getRequest()->setMethod("POST");
foreach ($fixtureArray as $key => $value) {
if ($value === null) { continue; }
$this->getRequest()->setPost($key, $value);
}
Или иначе убедитесь, что ряд вы вытеснете из базы данных в вашем getScheduleItem()
Метод не содержит нулей.
Не связан с StackOverflow