PHPUnit: „ungültiger Wert übergeben setPost ()“, wenn Zend_Db_Table_Row_Abstract vorbei umgewandelt unter Verwendung toArray ()
-
28-09-2019 - |
Frage
Der folgende Code nicht ein Zend_Controller_Exception wirft ( "ungültiger Wert zu setPost () übergeben, müssen entweder Array von Werten oder Schlüssel / Wert-Paar sein")
/** 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);
Ich habe ein var_dump () $ fixtureArray war die richtige Art, um sicherzustellen, und richtig ... keine sichtbaren Probleme formatiert.
Lösung
Sind irgendwelche der Spalten in Ihren Zeitplan Artikelzeile nullable?
Die setPost()
Methode nennt sich für jeden Schlüssel / Wert-Paar Sie in einem Array übergeben. Aber wenn jeder Wert null ist, es gibt eine Ausnahme aus.
Sie können über die Anordnung und setPost()
Schleife haben nur Werte, die ungleich Null sind:
$this->getRequest()->setMethod("POST");
foreach ($fixtureArray as $key => $value) {
if ($value === null) { continue; }
$this->getRequest()->setPost($key, $value);
}
Oder aber sicher, dass die Zeile, die Sie aus der Datenbank in Ihrer getScheduleItem()
Methode holen enthält keine NULL-Werte.