function FieldInstance::initializeIterator

Same name and namespace in other branches
  1. 9 core/modules/field/src/Plugin/migrate/source/d7/FieldInstance.php \Drupal\field\Plugin\migrate\source\d7\FieldInstance::initializeIterator()
  2. 8.9.x core/modules/field/src/Plugin/migrate/source/d7/FieldInstance.php \Drupal\field\Plugin\migrate\source\d7\FieldInstance::initializeIterator()
  3. 10 core/modules/field/src/Plugin/migrate/source/d7/FieldInstance.php \Drupal\field\Plugin\migrate\source\d7\FieldInstance::initializeIterator()

Overrides SqlBase::initializeIterator

2 methods override FieldInstance::initializeIterator()
FieldInstancePerViewMode::initializeIterator in core/modules/field/src/Plugin/migrate/source/d7/FieldInstancePerViewMode.php
Initializes the iterator with the source data.
ViewMode::initializeIterator in core/modules/field/src/Plugin/migrate/source/d7/ViewMode.php
Initializes the iterator with the source data.

File

core/modules/field/src/Plugin/migrate/source/d7/FieldInstance.php, line 97

Class

FieldInstance
Drupal 7 field instances source from database.

Namespace

Drupal\field\Plugin\migrate\source\d7

Code

protected function initializeIterator() {
    $results = $this->prepareQuery()
        ->execute()
        ->fetchAll();
    // Group all instances by their base field.
    $instances = [];
    foreach ($results as $result) {
        $instances[$result['field_id']][] = $result;
    }
    // Add the array of all instances using the same base field to each row.
    $rows = [];
    foreach ($results as $result) {
        $result['instances'] = $instances[$result['field_id']];
        $rows[] = $result;
    }
    return new \ArrayIterator($rows);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.