Drupal 8: Як перанакіраваць да пакетнай форме пасля таго, як прадставіць уласны URL (партыя АПА)

Я змагаўся з гэтым на працягу доўгага часу, але потым я знайшоў простае рашэнне.

Мне трэба перанакіраваць на новую старонку пакетнай апрацоўкі адразу ж пасля націску кнопкі адпраўкі, так вось рашэнне

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;
    }
  }

Гэта UseCase я знайшоў. Але гэта працуе толькі выдатна падыходзіць для выпечкі. Калі вам трэба перанакіраваць пасля адпраўкі формы можна таксама выкарыстоўваць

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

Загрузка

Гэтая запіс была апублікаваная ў Сетцы, PHP, WEB, Інтэрнэт, Кампутары, ПА, праграмаванне і адзначаных , , , . Закладка Пастаянная спасылка. | Кароткая спасылка:  http://p1rat.ru/lezzz/5KbGG

Пакінуць каментар