Мен бұған дейін ұзақ уақыт бойы күресіп келдім, бірақ мен қарапайым шешім таптым.
Жіберу түймесін басқаннан кейін маған пакетті өңдеудің жаңа бетіне бағыттау қажет болды, осында шешім
public function submitForm(array &$form, FormStateInterface $form_state) { $form_state->setRedirectUrl(Url::fromUri()) $identity = isset($form_state->getTriggeringElement()['#identity']) ? $form_state->getTriggeringElement()['#identity'] : 'unknown'; switch ($identity) { case static::BTN_UPDATE; $batch = [ 'title' => t('Updating'), 'operations' => [ array('sfo_common_batch_callbacks__taxonomy_update_cache_process', [[]]), ], 'finished' => 'sfo_common_batch_callbacks__taxonomy_update_cache_finished', 'file' => drupal_get_path('module', 'sfo_common') . '/include/batch/sfo_common.taxonomy_cache.inc', ]; batch_set($batch); $request = batch_process(static::URL_REDIRECT); return $request->send(); break; default: drupal_set_message(t('Incorrect operation')); break; } }
Бұл мен тапқан сайт. Бірақ бұл тек партия үшін жақсы жұмыс істейді. Егер сізге форманы жібергеннен кейін бағыттау қажет болса, оны пайдалануға болады
public function submitForm(array &$form, FormStateInterface $form_state) { $form_state->setRedirect(taxonomy.vocabulary.collection); // Here need to pass route name from *.routes.yml file //But if you need to redirect to custom url $form_state->setRedirectUrl(Url::fromUri('http://google.com')); // Need to pass Drupal\Core\Url object here }
Бағыттаудың басқа жолдары https://www.drupal.org/node/2023537