<?php
không gian tên Drupal\my_custom_module\Form;
sử dụng Drupal\Core\Form\FormBase;
sử dụng Drupal\Core\Form\FormStateInterface;
/**
* Biểu mẫu mặc định của lớp.
*/
lớp DefaultForm mở rộng FormBase {
/**
* {@inheritdoc}
*/
hàm công khai getFormId() {
trả về 'default_form';
}
/**
* {@inheritdoc}
*/
chức năng công khai buildForm(mảng $form, FormStateInterface $form_state) {
$form['test'] = [
'#type' => 'trường văn bản',
'#title' => $this->t('Kiểm tra'),
'#maxlength' => 64,
'#size' => 64,
'#trọng lượng' => '0',
];
$form['submit'] = [
'#type' => 'gửi',
'#value' => $this->t('Gửi'),
];
$form_state->setErrorByName('kiểm tra', 'lỗi');
trả về biểu mẫu $;
}
/**
* {@inheritdoc}
*/
hàm công khai validateForm(mảng &$form, FormStateInterface $form_state) {
$form_state->setErrorByName('kiểm tra', 'lỗi');
cha mẹ::validateForm($form, $form_state);
}
/**
* {@inheritdoc}
*/
hàm công khai submitForm(mảng &$form, FormStateInterface $form_state) {
$form_state->setRebuild(TRUE);
}
}
Khi đang sử dụng setError
, setErrorByName
hoặc setRebuild
phương thức, dù nó ở trong validateForm hay submitForm, nó sẽ phá vỡ biểu mẫu của tôi bằng cách cho tôi một Đã hết kích thước bộ nhớ cho phép là XXX byte lỗi khi tôi gửi biểu mẫu.
Vấn đề là, tôi không thấy gì trong nhật ký ngoại trừ hàng nghìn lỗi "404", như thể tôi có thứ gì đó kích hoạt vòng lặp vô hạn.
Trong ví dụ, tôi có cả hai setErrorByName
và setRebuild
, nhưng nó xảy ra ngay cả với chỉ một trong số họ.
Bạn có thể nghĩ ra bất cứ điều gì có thể gây ra lỗi này không?