<?php
เนมสเปซ Drupal\my_custom_module\Form;
ใช้ Drupal\Core\Form\FormBase;
ใช้ Drupal\Core\Form\FormStateInterface;
/**
* คลาส DefaultForm
*/
คลาส DefaultForm ขยาย FormBase {
/**
* {@inheritdoc}
*/
ฟังก์ชั่นสาธารณะ getFormId () {
กลับ 'default_form';
}
/**
* {@inheritdoc}
*/
ฟังก์ชันสาธารณะ buildForm (อาร์เรย์ $form, FormStateInterface $form_state) {
$แบบฟอร์ม['ทดสอบ'] = [
'#type' => 'ช่องข้อความ',
'#title' => $this->t('ทดสอบ'),
'#maxlength' => 64,
'#ขนาด' => 64,
'#น้ำหนัก' => '0',
];
$แบบฟอร์ม['ส่ง'] = [
'#type' => 'ส่ง',
'#value' => $this->t('ส่ง'),
];
$form_state->setErrorByName('ทดสอบ', 'ข้อผิดพลาด');
คืนฟอร์ม $;
}
/**
* {@inheritdoc}
*/
ฟังก์ชันสาธารณะ validateForm (อาร์เรย์ &$form, FormStateInterface $form_state) {
$form_state->setErrorByName('ทดสอบ', 'ข้อผิดพลาด');
parent::validateForm($form, $form_state);
}
/**
* {@inheritdoc}
*/
ฟังก์ชันสาธารณะ submitForm (อาร์เรย์ &$form, FormStateInterface $form_state) {
$form_state->setRebuild(จริง);
}
}
เมื่อใช้งาน setError
, setErrorByName
หรือ ตั้งสร้างใหม่
วิธีการไม่ว่าจะเป็นใน validateForm หรือ submitForm มันทำลายแบบฟอร์มของฉันโดยให้ a ขนาดหน่วยความจำที่อนุญาต XXX ไบต์หมดแล้ว เกิดข้อผิดพลาดเมื่อฉันส่งแบบฟอร์ม
ปัญหาคือ ฉันไม่เห็นอะไรเลยในบันทึก ยกเว้นข้อผิดพลาด "404" นับพัน ราวกับว่าฉันมีบางสิ่งที่ทำให้เกิดการวนซ้ำไม่สิ้นสุด
ในตัวอย่างฉันมีทั้งสองอย่าง setErrorByName
และ ตั้งสร้างใหม่
แต่มันเกิดขึ้นแม้กับหนึ่งในนั้น
คุณนึกถึงอะไรที่ทำให้เกิดข้อผิดพลาดนี้ได้บ้าง