kgaut.net // Développeur web PHP / Drupal freelance
contactez-moi

Drupal 8 & Drupal 9 - Passer des variables à un formulaire

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

snippet · 19 Oct 2015 Drupal 7 - Passer des variables à un formulaire snippet · 15 Oct 2020 Drupal - Afficher un formulaire dans un bloc ou un contrôleur snippet · 17 Jun 2022 Drupal 8 & Drupal 9 - Lancer le téléchargement d'un fichier depuis un formulaire

Commentaires (0)