Apa alternatifnya drupal_get_form('user_login')
. di Drupal 8?
Saya menggunakan kode berikut di theme_name.theme, tetapi tidak berhasil.
// Include namespace for userLoginForm.
use \Drupal\Core\core\modules\user\src\Form;
function MYTHEMENAME_preprocess_page(&$variables) {
$form = UserLoginForm::create();
}
$variables['foo_form'] = \Drupal::formBuilder()->getForm('user_login');
apakah itu?Anda dapat membuat formulir di bawah folder formulir. Dan kemudian Anda dapat memanggil formulir Anda di mana saja dan melewati parameter seperti yang ditunjukkan.
Drupal 7 :
$form = drupal_get_form('form_id',$parameter);
Drupal 8 :
$form = \Drupal::formBuilder()->getForm('Drupal\custom_module\Form\CustomModuleForm',$parameter);
sumber
Ada dua opsi untuk mengembalikan (D8) atau membuat (D7) formulir. Ini
\Drupal::formBuilder()->getForm
danDrupal::formBuilder()->buildForm
. Saya menggunakan\Drupal::formBuilder()->getForm
seperti di bawah ini.Gunakan ini jika Anda tidak melewati parameter:
Gunakan ini jika Anda melewati parameter:
Drupal 7 Setara di atas:
Bersulang. Beritahu saya jika itu membantu.
sumber
Dokumentasi juga memungkinkan instance kelas. Begitu
juga benar.
sumber
Dengan asumsi di bawah ini adalah kelas formulir Anda
Anda harus membuat instance baru dari kelas formulir Anda terlebih dahulu, dan meneruskannya ke getForm formBuilder.
sumber
Ok jika semuanya gagal di sini adalah trik licik dengan mengatur objek bentuk negara baru.
... lalu dalam formForm metode form Anda, Anda kemudian dapat ...
sumber