以下代码失败会抛出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是正确的类型,格式正确......没有明显的问题。
答案 0 :(得分:4)
您的计划项目中的任何列都可以为空吗?
setPost()
方法为您在数组中传递的每个键/值对调用自身。但是如果任何值为null,则抛出异常。
您可能必须遍历数组,而setPost()
只能循环非空值:
$this->getRequest()->setMethod("POST");
foreach ($fixtureArray as $key => $value) {
if ($value === null) { continue; }
$this->getRequest()->setPost($key, $value);
}
或者确保您在getScheduleItem()
方法中从数据库中提取的行不包含空值。