<?php
пространство имен Drupal\my_custom_module\Form;
используйте Drupal\Core\Form\FormBase;
используйте Drupal\Core\Form\FormStateInterface;
/**
* Форма класса по умолчанию.
*/
класс DefaultForm расширяет FormBase {
/**
* {@inheritdoc}
*/
публичная функция getFormId() {
вернуть 'форма_по_умолчанию';
}
/**
* {@inheritdoc}
*/
общедоступная функция buildForm (массив $ form, FormStateInterface $ form_state) {
$ форма ['тест'] = [
'#тип' => 'текстовое поле',
'#title' => $this->t('Тест'),
'#maxlength' => 64,
'#размер' => 64,
'#вес' => '0',
];
$ форма ['отправить'] = [
'#type' => 'отправить',
'#value' => $this->t('Отправить'),
];
$form_state->setErrorByName('тест', 'ошибка');
вернуть $ форму;
}
/**
* {@inheritdoc}
*/
общедоступная функция validateForm (массив и $ форма, FormStateInterface $ form_state) {
$form_state->setErrorByName('тест', 'ошибка');
родитель::validateForm($form, $form_state);
}
/**
* {@inheritdoc}
*/
публичная функция submitForm (массив и $ форма, FormStateInterface $ form_state) {
$form_state->setRebuild(ИСТИНА);
}
}
Когда используешь setError
, setErrorByName
или же setRebuild
методов, будь то в validateForm или submitForm, он ломает мою форму, давая мне Допустимый размер памяти XXX байт исчерпан ошибка при отправке формы.
Проблема в том, что я не вижу в журналах ничего, кроме тысяч ошибок «404», как будто я что-то запускаю в бесконечный цикл.
В примере у меня есть оба setErrorByName
и setRebuild
, но это происходит даже с одним из них.
Можете ли вы придумать что-нибудь, что может вызвать эту ошибку?