it-swarm.com.de

Weiterleiten nach dem Absenden des Formulars

Ich erstelle ein benutzerdefiniertes Formular in Drupal 8, ich erinnere mich, dass wir in Drupal 7 mit set $form_state['redirect'] = 'mycustompath'; Im benutzerdefinierten Submit-Handler zum benutzerdefinierten Pfad umleiten können). aber wie kann Benutzer nach dem Absenden des Formulars in Drupal 8? umleiten

Ich weiß, ich sollte die Methode submitForm verwenden:

public function submitForm(array &$form, FormStateInterface $form_state)
{
   //submissions jobs ...
   //redirect path
}
15
Yusef

Schreiben Sie in Ihre "submitForm" -Methode den folgenden Code

 $form_state->setRedirect('machine_name');
 return;

wo machine_name ist der in der Routing-Datei angegebene Computername.

Ich hoffe das hilft .. :)

31
parth.k

Wenn Sie bei Buildform festlegen möchten, müssen Sie einen Routing-Pfad wie verwenden.

use Drupal\Core\Url;

$url = Url::fromRoute('route.path');
$form_state->setRedirectUrl($url);
8
vgoradiya

Wenn Sie das Benutzerbearbeitungsformular auf die Startseite oder eine andere Seite umleiten möchten, folgen Sie dem folgenden Code.

Zuerst add-hook - hook_form_alter`

function yourmodulename_form_alter(&$form, FormStateInterface $form_state, $form_id) 
{
    if ($form_id === 'your form id') {
    $form['actions']['submit']['#submit'][] = 'modulename_user_edit_form_submit';
  } 
}

nach dem Hinzufügen des Hakens fügen Sie die folgende Funktion hinzu

function modulename_user_edit_form_submit($form,  FormStateInterface &$form_state) {
  global $base_url; //set base path
  $response = new Symfony\Component\HttpFoundation\RedirectResponse($base_url ."/xyz"); //set url
  $response->send();
  return;
}

Ich hoffe diese Hilfe.

0
prashant