Depuis un controller :
// Variables à transmettre au formulaire
$data = ['lalala' => 'lilili'];
// Avec l'injection de dépendances
$this->formBuilder()->getForm(Drupal\mon_module\Form\TriggerForm::class, $data);
// Sinon, sans l'injection de dépendances
$form = \Drupal::formBuilder()->getForm('Drupal\mon_module\Form\TriggerForm', $data);
Récupération des données dans le formulaire
public function buildForm(array $form, FormStateInterface $form_state) {
// Récupération des données
$data = $form_state->getBuildInfo()['args'][0];
// Définition du formulaire
}
Il est possible de passer plusieurs variables
// Variables à transmettre au formulaire
$data = ['lalala' => 'lilili'];
$doto = ['lululu' => 'lelele'];
// Avec l'injection de dépendances
$this->formBuilder()->getForm(Drupal\mon_module\Form\TriggerForm::class, $data, $doto);
// Sinon, sans l'injection de dépendances
$form = \Drupal::formBuilder()->getForm('Drupal\mon_module\Form\TriggerForm', $data, $doto);
public function buildForm(array $form, FormStateInterface $form_state) {
// Récupération des données
$data = $form_state->getBuildInfo()['args'][0];
$doto = $form_state->getBuildInfo()['args'][1];
// Définition du formulaire
}
Contenus en rapport
Via la fonction drupal_get_form il est possible de passer des variables à notre formulaire custom.
Il est possible dans un contrôleur ou un bloc de récupérer un formulaire et de l'afficher comme n'importe quelle autre variable.
Voici comment depuis la soumission d'un formulaire déclencher le téléchargement d'un fichier via une BinaryFileResponse :
Ajouter un commentaire