Heim >Backend-Entwicklung >PHP-Tutorial >So erstellen Sie mehrstufige Formen in Drupal 8
Dieser Artikel zeigt, dass das Erstellen eines mehrstufigen Formulars in Drupal 8 unter Verwendung von zwei separaten Formularen und Drupal-Kerndatenspeicherung erstellt wird. Lassen Sie uns die Erklärung rationalisieren und den Fluss verbessern.
Schlüsselkonzepte:
PrivateTempStore
stellt die Datendauer über mehrere Anfragen hinweg und aktiviert den Multi-Step-Prozess. Implementierungsdetails:
Die Lösung umfasst:
MultisePFormbase.php:
Diese abstrakte Basisklasse übernimmt gemeinsame Aufgaben:PrivateTempStoreFactory
Abhängigkeitsinjektion: Injekte SessionManagerInterface
, AccountInterface
und PrivateTempStore
Datenspeicher: Verwendet multistep_data
, um Formulardaten zu speichern (saveData()
Datensparen (deleteStore()
Datendeletion (MultisePoneForm.php:
Die erste Form:MultistepFormBase
erweitert name
enthält zwei Felder: email
und PrivateTempStore
ruft zuvor eingegebene Werte von demo.multistep_two
leitet nach Einreichung zu multiseptWOform.php:
Die zweite Form:MultistepFormBase
erweitert age
enthält zwei Felder: location
und PrivateTempStore
ruft zuvor eingegebene Werte aus demo.multistep_one
enthält einen "vorherigen" Link, der zu saveData()
ruft
Demo.routing.yml: demo.multistep_one
definiert Routen für demo.multistep_two
und
Illustrative Screenshots:
Code -Snippets (veranschaulichend):
(multisePFormbase.php - Auszug):
<code class="language-php">protected function saveData() { // Save data (e.g., create a configuration entity) $this->deleteStore(); drupal_set_message($this->t('Form saved!')); }</code>
(MultisePoneForm.php - Auszug):
<code class="language-php">$form['name'] = [ '#type' => 'textfield', '#title' => $this->t('Your name'), '#default_value' => $this->store->get('name') ?: '', ];</code>
Schlussfolgerung:
Dieser Ansatz bietet eine saubere und effiziente Möglichkeit, in Drupal 8 mehrstufige Formulare zu erstellen, wodurch die Leistung des PrivateTempStore
für das Querschnittsdatenmanagement verwendet wird. Die Verwendung einer abstrakten Basisklasse fördert die Codeorganisation und die Wiederverwendbarkeit. Diese Struktur kann leicht erweitert werden, um mehr Schritte aufzunehmen. Der FAQ -Abschnitt ist hier für die Kürze weggelassen, da der Artikelgremium bereits die wesentlichen Aspekte abdeckt.
Das obige ist der detaillierte Inhalt vonSo erstellen Sie mehrstufige Formen in Drupal 8. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!