PHPUnit: « valeur non valide transmis à setPost () » lors du passage Zend_Db_Table_Row_Abstract convertis à l'aide toArray ()

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

Question

Le code suivant ne jette une Zend_Controller_Exception ( "valeur non valide transmis à setPost (); doit être soit tableau de valeurs ou d'une paire de clé / valeur")

/** 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);

Je l'ai fait un var_dump () pour assurer $ fixtureArray était le type correct et formaté correctement ... aucun problème visible.

Était-ce utile?

La solution

Est-ce que des colonnes de votre article horaire ligne annulable?

La méthode setPost() appelle lui-même pour chaque paire clé / valeur que vous passez dans un tableau. Mais si une valeur est nulle, elle renvoie une exception.

Vous pouvez avoir à boucle sur le tableau et setPost() uniquement des valeurs qui ne sont pas nulles:

$this->getRequest()->setMethod("POST");
foreach ($fixtureArray as $key => $value) {
  if ($value === null) { continue; }
  $this->getRequest()->setPost($key, $value);
}

Ou bien faire en sorte que la ligne que vous rapportez de la base de données dans votre méthode de getScheduleItem() ne contient pas de valeurs NULL.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top