phpunit:zend_db_table_row_abstractを通過すると、「setpost()に渡された無効な値」toarray()を使用して変換されます
-
28-09-2019 - |
質問
次のコードがZend_Controller_exceptionをスローに失敗します (「setpost()に渡された無効な値(値の配列またはkey/valueペアのいずれかである必要があります」)
/** 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);
$ fixTurearrayが正しいタイプであることを確認するためにvar_dump()を行い、適切にフォーマットされています...目に見える問題はありません。
解決
スケジュール項目の列のいずれかがnullableされていますか?
setPost()
メソッドは、配列で渡すキー/値ペアごとにそれ自体を呼び出します。ただし、値がnullの場合、例外がスローされます。
配列の上にループする必要がある場合があります setPost()
非ヌルの値のみ:
$this->getRequest()->setMethod("POST");
foreach ($fixtureArray as $key => $value) {
if ($value === null) { continue; }
$this->getRequest()->setPost($key, $value);
}
または、あなたがあなたのデータベースから取得する行を確認してください getScheduleItem()
メソッドにはヌルが含まれていません。
所属していません StackOverflow