Artikel ini menunjukkan membina borang pelbagai langkah di Drupal 8 menggunakan dua bentuk berasingan dan penyimpanan data sementara teras Drupal. Mari kita menyelaraskan penjelasan dan memperbaiki aliran.
Konsep Utama:
PrivateTempStore
memastikan kegigihan data merentasi pelbagai permintaan, membolehkan proses pelbagai langkah. Butiran pelaksanaan:
Penyelesaian ini melibatkan:
multistepformbase.php: kelas asas abstrak ini mengendalikan tugas umum:
PrivateTempStoreFactory
, dan SessionManagerInterface
. AccountInterface
PrivateTempStore
kekunci). multistep_data
saveData()
deleteStore()
Bentuk pertama:
melanjutkanMultistepFormBase
mengandungi dua medan: name
email
mengambil nilai-nilai yang dimasukkan sebelum ini dari PrivateTempStore
mengalihkan ke demo.multistep_two
Bentuk kedua:
melanjutkanMultistepFormBase
mengandungi dua medan: age
location
mengambil nilai -nilai yang dimasukkan sebelum ini dari PrivateTempStore
Termasuk pautan "Sebelumnya" mengalihkan ke demo.multistep_one
Panggilan saveData()
mentakrifkan laluan untuk dan , mengaitkannya dengan kelas bentuk masing -masing. demo.multistep_one
demo.multistep_two
coretan kod (ilustrasi):
(multistepformbase.php - petikan):
protected function saveData() { // Save data (e.g., create a configuration entity) $this->deleteStore(); drupal_set_message($this->t('Form saved!')); }
(multistePoneform.php - petikan):
$form['name'] = [ '#type' => 'textfield', '#title' => $this->t('Your name'), '#default_value' => $this->store->get('name') ?: '', ];
Kesimpulan:
Pendekatan ini menyediakan cara yang bersih dan efisien untuk mencipta bentuk pelbagai langkah di Drupal 8, memanfaatkan kuasa untuk pengurusan data silang. Penggunaan kelas asas abstrak menggalakkan organisasi kod dan kebolehgunaan semula. Struktur ini dengan mudah boleh dilanjutkan untuk menampung lebih banyak langkah. Bahagian FAQ ditinggalkan di sini untuk keringkasan, kerana badan artikel sudah meliputi aspek penting. PrivateTempStore
Atas ialah kandungan terperinci Cara Membina Borang Multi-Langkah di Drupal 8. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!