phpunit: "قيمة غير صالحة تم تمريرها إلى setPost ()" عند تمرير zend_db_table_row_abstract تم تحويلها باستخدام toarray ()

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

سؤال

الرمز التالي فشل يلقي 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() الطريقة لا تحتوي على خام.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top