Мен бұған дейін ұзақ уақыт бойы күресіп келдім, бірақ мен қарапайым шешім таптым.
Жіберу түймесін басқаннан кейін маған пакетті өңдеудің жаңа бетіне бағыттау қажет болды, осында шешім
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 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 ; } } |
Бұл мен тапқан сайт. Бірақ бұл тек партия үшін жақсы жұмыс істейді. Егер сізге форманы жібергеннен кейін бағыттау қажет болса, оны пайдалануға болады
1 2 3 4 5 6 | 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