PHPUnit: „ungültiger Wert übergeben setPost ()“, wenn Zend_Db_Table_Row_Abstract vorbei umgewandelt unter Verwendung toArray ()

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

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.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top