Drupal 8: Пайдаланушы URL табыс кейін пакеттік нысан қайта бағыттау үшін қалай (пакеттік API)

Мен бұған дейін ұзақ уақыт бойы күресіп келдім, бірақ мен қарапайым шешім таптым.

Жіберу түймесін басқаннан кейін маған пакетті өңдеудің жаңа бетіне бағыттау қажет болды, осында шешім

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

Жүктелуде

Бұл жазба орналастырылды Торларының, PHP, WEB, Интернет, Компьютерлер, бағдарламалық қамтамасыз ету, бағдарламалау және тегтелген , , , . Bookmark Тұрақты сілтеме. | Қысқа сілтеме:  http://p1rat.ru/lezzz/5KbGG

Пікір қалдыру