特定のWebフォームによるWebフォーム送信をロードしようとしていますsign_up
。
Query webform submissions を使用すると、関連付けられているすべてのIDが取得され、次を使用してデータをロードできます
$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.
これは提出物を取得する正しい方法ですか? Webformには、送信結果を照会するためのなんらかのAPIが付属していると思います。
私も試しました: https://www.drupal.org/project/webform/issues/2902682 が空の配列になってしまいました。
Webformモジュールは、カスタム Entity-Attribute-Valueモデル を使用して送信データを保存します。サンプルコードは、すべての送信データを取得する最も簡単で最速の方法です。唯一の制限は、投稿数とPHPのメモリ制限です。 1000の提出物をロードすると、メモリが不足します。