У меня есть форма с обратным вызовом ajax следующим образом: каждый токен отправки не меняется, он остается постоянным для всех отправки.
wall.routing.yml
стена.комментарийформа:
путь: '/комментарийформа'
значения по умолчанию:
_title: 'Форма комментариев'
_form: '\Drupal\wall\Form\WallCommentPost'
требования:
_permission: 'доступ к содержимому'
_csrf_token: «ИСТИНА»
В следующем
WallCommentPost.php
$аякс = [
'обратный вызов' => [$это, '_wall_comment_ajax_form_post'],
'обертка' => 'заменить-комментарий-типа-поля',
'событие' => 'щелчок',
'прогресс' => массив (
'тип' => 'пульсирующий',
'сообщение' => '',
)
];
$ форма ['wall_submit'] = [
'#type' => 'отправить',
'#value' => 'Отправить',
'#ajax' => $ajax,
'#prefix' => '<div class="col-12 p-1 d-flex justify-content-between"><div class="file_name_insert file_name_insert_data-' . $nid . ' pl-4 text-truncate"> </дел>',
'#суффикс' => '</div>',
'#атрибуты' => массив(
'класс' => массив (
'бтн',
$ajax_класс,
'д-нет',
'subbtn-' . $нид
),
'отключено' => 'отключено'
),
];
$url = Url::fromRoute('wall.commentform');
$token = \Drupal::csrfToken()->get($url->getInternalPath());
$form['#action'] = Url::fromRoute('wall.commentform')->setOption('query', [FormBuilderInterface::AJAX_FORM_REQUEST => 1, 'token1' => $token])->toString( );