Saya telah memperbarui salah satu modul Drupal 7 saya ke 8 dan saya mengalami masalah dengan perubahan bentuk saya. Saya menambahkan fungsi validasi dan penangan kirim. Fungsi validasi dipanggil dengan baik, tetapi fungsi kirim tidak dipecat. Saya bertanya-tanya apakah ini berarti ada pendekatan gaya-Symfony yang perlu diambil untuk menambahkan menyerahkan penangan ke formulir yang ada. Saya telah melakukan banyak pencarian dan saya tidak dapat menemukan contoh. Juga melihat melalui beberapa modul D8 yang sedang dikerjakan tetapi saya belum benar-benar menemukan contoh yang baik di sana.
Adakah yang tahu cara Drupal 8 yang benar untuk melakukan ini?
Jawaban:
Menurut contoh dalam dokumentasi itu sama dengan untuk Drupal 7:
Anda dapat menemukan logika yang serupa (berfungsi) di
contact_form_user_form_alter()
editor_form_filter_format_form_alter()
locale_form_language_admin_edit_form_alter()
Dan beberapa lainnya selain itu.
sumber
Anda dapat menambahkan berapa banyak pengirim yang Anda inginkan menggunakan kode berikut:
Jika Anda ingin menambahkan penangan kirim setelah penangan kirim default, (penangan kirim yang akan dipanggil setelah kirim balik), Anda dapat menggunakan yang berikut ini.
Untuk menghapus pengirim handler:
sumber
Perilaku tersebut dapat diubah atau berbeda dari kasus ke kasus. Dengan formulir konfirmasi Node Delete Multiple
Kode @ Clive menyebabkan Drupal mengabaikan pengendali utama. Dalam hal ini tambahkan pawang ke
$form['#submit']
bagian:sumber
Berikut ini cara melampirkan handler ajukan kustom ke simpul tambah / edit bentuk artikel di Drupal 8:
Saya tidak dapat dengan sukses menambahkan handler ajukan kustom ke
$form['#submit']
dan memiliki fungsi api dengan benar. Saya harus melampirkannya secara eksplisit ke tombol Simpan dan terbitkan saat membuat artikel baru, dan lampirkan ke tombol Simpan dan tetap terbitkan saat mengedit artikel yang ada.Selain itu
publish
, berikut adalah beberapa tindakan tombol lain yang tersedia:sumber
my_module_node_article_form_submit($form, FormStateInterface $form_state
memberi sayaTypeError: Argument 2 passed to _ccad_content_log_webform_submit() must be an instance of FormStateInterface, instance of Drupal\Core\Form\FormState given
; mengubahnya untuk_submit($form, $form_state)
memperbaiki kesalahan.