Ich habe für eine lange Zeit mit diesem Kampf, aber dann fand ich einfache Lösung.
Ich brauchte, um neue Batch-Verarbeitung Seite umleiten direkt nach dem Button einreichen, so ist hier eine Lösung
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; } }
Dies ist die usecase ich gefunden. Das ist aber funktioniert nur gut für die Chargen. Wenn Sie nach der Form umleiten müssen einreichen es auch möglich, zu verwenden
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 }
Andere Wege umleiten https://www.drupal.org/node/2023537