Rumah > pembangunan bahagian belakang > tutorial php > Cara Membina Borang Multi-Langkah di Drupal 8

Cara Membina Borang Multi-Langkah di Drupal 8

Christopher Nolan
Lepaskan: 2025-02-17 09:31:08
asal
996 orang telah melayarinya

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:

  • Dua bentuk bebas: Borang pelbagai langkah dibina dari dua bentuk yang berbeza, masing-masing mengendalikan subset input pengguna.
  • kelas asas abstrak (multistepformbase): fungsi umum, seperti suntikan pergantungan, bentuk perancah, dan pemprosesan data, dipusatkan dalam kelas asas abstrak. Ini menggalakkan kebolehgunaan semula kod dan penyelenggaraan.
  • PrivateTempStore: Drupal PrivateTempStore memastikan kegigihan data merentasi pelbagai permintaan, membolehkan proses pelbagai langkah.
  • Definisi laluan: Laluan berasingan ditakrifkan untuk setiap bentuk, yang membolehkan navigasi antara langkah -langkah.

Butiran pelaksanaan:

Penyelesaian ini melibatkan:

  1. multistepformbase.php: kelas asas abstrak ini mengendalikan tugas umum:

      Suntikan Ketergantungan: Suntikan
    • , PrivateTempStoreFactory, dan SessionManagerInterface. AccountInterface
    • Pengurusan Sesi: Memastikan sesi wujud untuk pengguna tanpa nama.
    • Penyimpanan Data: Menggunakan
    • untuk menyimpan data borang (PrivateTempStore kekunci). multistep_data
    • Penjimatan Data (
    • ): Pemegang tempat untuk logik penjimatan data sebenar (pelaksanaan bergantung kepada keperluan khusus anda). saveData()
    • Penghapusan data (): Mengeluarkan data yang disimpan selepas penyerahan yang berjaya.
    • deleteStore()
  2. multisteponform.php:

    Bentuk pertama:

    melanjutkan
      .
    • MultistepFormBase mengandungi dua medan:
    • dan
    • . name email mengambil nilai-nilai yang dimasukkan sebelum ini dari
    • untuk pra-populasi.
    • PrivateTempStore mengalihkan ke
    • apabila penyerahan.
    • demo.multistep_two
  3. multisteptwoform.php:

    Bentuk kedua:

    melanjutkan
      .
    • MultistepFormBase mengandungi dua medan:
    • dan
    • . age location mengambil nilai -nilai yang dimasukkan sebelum ini dari
    • .
    • PrivateTempStore Termasuk pautan "Sebelumnya" mengalihkan ke
    • .
    • demo.multistep_one Panggilan
    • dari kelas asas apabila diserahkan dan kemudian mengarahkan.
    • saveData()
  4. demo.routing.yml:

    mentakrifkan laluan untuk dan , mengaitkannya dengan kelas bentuk masing -masing. demo.multistep_one demo.multistep_two

screenshots ilustrasi:

How to Build Multi-step Forms in Drupal 8

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!'));
}
Salin selepas log masuk

(multistePoneform.php - petikan):

$form['name'] = [
  '#type' => 'textfield',
  '#title' => $this->t('Your name'),
  '#default_value' => $this->store->get('name') ?: '',
];
Salin selepas log masuk

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan