web-dev-qa-db-fra.com

Obtenez toutes les soumissions à partir d'un formulaire Web spécifique

J'essaie de charger des soumissions de formulaire Web par un formulaire Web particulier sign_up.

En utilisant Soumettre des soumissions de formulaire Web , cela me permet d'obtenir tous les ID associés et je peux charger les données en utilisant

$query = \Drupal::entityQuery('webform_submission')
  ->condition('webform_id', 'sign_up');
$result = $query->execute(); // Gives me IDs associated with the "sign_up" webform.

$storage = \Drupal::entityTypeManager()->getStorage('webform_submission');
$submissions = $storage->loadMultiple($result);
$submission_data = array();
foreach ($submissions as $submission) {
  $submission_data[] = $submission->getData();
}
// $submission_data now contains all the submissions from "sign_up" webform.

Est-ce la bonne façon d'obtenir les soumissions? Je pense que Webform est livré avec une sorte d'API pour interroger les résultats de la soumission.

J'ai également essayé: https://www.drupal.org/project/webform/issues/2902682 mais je me suis retrouvé avec un tableau vide.

3
Ronnie

Le module Webform stocke les données de soumission à l'aide d'un --- modèle Entity-Attribute-Value . Votre exemple de code est le moyen le plus simple et le plus rapide d'obtenir toutes les données de soumission. La seule limitation serait le nombre de soumissions par rapport à la limite de mémoire de PHP. Vous manquerez de mémoire si vous chargez des soumissions de 1000

4
jrockowitz