Bagaimana cara mendapatkan formulir kontak sisi-lebar (umpan balik) yang ditampilkan secara individual di blok khusus atau halaman lain lalu / kontak (misalnya halaman depan)?
Saya sudah mencoba kode ini, tetapi tidak berfungsi (apakah entitas formulir kontak?):
// get default form
// get the entity object
$default_form = \Drupal::config('contact.settings')->get('default_form');
$entity = \Drupal::entityManager()->getStorage('contact_form')->load($default_form);
// get view builder
// render view
$view_builder = \Drupal::entityManager()->getViewBuilder('contact_form');
$full_output = $view_builder->view($entity);
entityManager
tidak digunakan lagi karenaentityTypeManager
( API docs )Jawaban:
Formulir kontak adalah suatu entitas, tetapi Anda tidak dapat melihatnya.
Yang Anda inginkan adalah bentuk add dari contact_message dengan contact_form sebagai bundle
Lihat
ContactController::contactSitePage()
(EDIT: API docs ) sebagai contoh:EDIT (terima kasih @nilsun): Perhatikan bahwa entityManager tidak digunakan lagi karena entityTypeManager.
sumber
entityManager
tidak digunakan lagi karenaentityTypeManager
( API docs ) dan beberapa tautan hilang di sini sebagai jawabannya. Dalam jawaban itu menyatakan: LihatContactController::contactSitePage()
sebagai contoh. Dimana itu? Apakah ini halaman dokumen di Drupal.org? Apakah itu fungsi dalam inti? Bagaimana menerapkan ini dalam fungsi preprocess karena pertanyaannya adalah tentang .theme? Banyak hal telah berubah akhir tahun lalu dan ada informasi yang hilang tentang inti D8 akhir mengenai pertanyaan semacam itu di sebagian besar jawaban.