phpunit: "قيمة غير صالحة تم تمريرها إلى setPost ()" عند تمرير zend_db_table_row_abstract تم تحويلها باستخدام toarray ()
-
28-09-2019 - |
سؤال
الرمز التالي فشل يلقي Zend_Controller_Exception ("قيمة غير صالحة تم تمريرها إلى setPost () ؛ يجب أن تكون إما صفيف من القيم أو زوج المفتاح/القيمة")
/** 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);
لقد قمت بعمل var_dump () لضمان $ fixTureArray كان النوع الصحيح ، وتم تنسيقه بشكل صحيح ... لا توجد مشاكل واضحة.
المحلول
هل أي من الأعمدة في صف عنصر الجدول الزمني الخاص بك لا لبس فيه؟
ال setPost()
تستدعي الطريقة نفسها لكل زوج مفتاح/قيمة تقوم بتمريره في صفيف. ولكن إذا كانت أي قيمة لاغية ، فإنها ترمي استثناء.
قد تضطر إلى حلقة الصفيف و setPost()
فقط القيم غير الفريدة:
$this->getRequest()->setMethod("POST");
foreach ($fixtureArray as $key => $value) {
if ($value === null) { continue; }
$this->getRequest()->setPost($key, $value);
}
أو تأكد من أن الصف الذي تجلبه من قاعدة البيانات في getScheduleItem()
الطريقة لا تحتوي على خام.
لا تنتمي إلى StackOverflow