PhpUnit: «Неверное значение, переданное для SetPost ()» при прохождении zend_db_table_row_abstract, преобразованный с помощью toarray ()

StackOverflow https://stackoverflow.com/questions/3876743

Вопрос

Следующий код не удается бросает 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() Метод не содержит нулей.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top