¿Cuál es la alternativa a drupal_get_form('user_login')
. en Drupal 8?
Estoy usando el siguiente código en theme_name.theme, pero no funciona.
// 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');
sea así.Puede crear un formulario en la carpeta de formularios. Y luego puede llamar a su formulario en cualquier lugar y pasar el parámetro como se muestra.
Drupal 7 :
$form = drupal_get_form('form_id',$parameter);
Drupal 8 :
$form = \Drupal::formBuilder()->getForm('Drupal\custom_module\Form\CustomModuleForm',$parameter);
fuente
Hay dos opciones para devolver (D8) o representar (D7) un formulario. Estos son
\Drupal::formBuilder()->getForm
yDrupal::formBuilder()->buildForm
. yo suelo\Drupal::formBuilder()->getForm
como a continuación.Use esto si no está pasando un parámetro:
Use esto si está pasando un parámetro:
Drupal 7 Equivalente de lo anterior:
Salud. Avísame si te ayuda.
fuente
La documentación también permite una instancia de la clase. Entonces
También es correcto.
fuente
Asumiendo que lo siguiente es tu clase de formulario
Primero debe crear una nueva instancia a partir de su clase de formulario y pasarla a getForm de formBuilder.
fuente
Ok, si todo lo demás falla aquí, es un truco astuto al establecer un nuevo objeto de estado de formulario.
... luego en su método de formulario buildForm puede entonces ...
fuente