PHPUnit: “Valor no válido pasado a setPost ()” al pasar Zend_Db_Table_Row_Abstract convertidos utilizando toArray ()

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

Pregunta

falla El siguiente código tiros un Zend_Controller_Exception ( "valor no válido pasado a setPost (); debe ser o bien matriz de valores o de pares de claves / valor")

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

Hice un var_dump () para asegurar $ fixtureArray era el tipo correcto y el formato correcto ... no hay problemas visibles.

¿Fue útil?

Solución

¿Alguna de las columnas en su horario línea de artículo anulable?

El método setPost() llama a sí mismo para cada par clave / valor que se pasa en una matriz. Pero si ningún valor es nulo, se produce una excepción.

puede tener que bucle sobre la matriz y setPost() sólo los valores que no son null:

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

O de lo contrario asegurarse de que la fila de hacer salir de la base de datos en su método de getScheduleItem() no contiene valores nulos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top