public function MigrateSourceReference::performRewind in Relation 8
Same name and namespace in other branches
- 8.2 relation_migrate/relation_migrate.source.inc \MigrateSourceReference::performRewind()
- 7 relation_migrate/relation_migrate.source.inc \MigrateSourceReference::performRewind()
Do whatever needs to be done to start a fresh traversal of the source data.
File
- relation_migrate/
relation_migrate.source.inc, line 83 - Source plugin for *reference fields.
Class
- MigrateSourceReference
- Migration source for *ference field. This source is primary used in relation_migrate to convert *reference entries into relation entities.
Code
public function performRewind() {
$this->result = array();
$this->next_row = 0;
// Load data for each field and merge all records in result array.
foreach ($this->fields as $field_name) {
$field_info = field_read_field($field_name);
$columns = array_keys($field_info['columns']);
if (!empty($field_info) && $field_info['type'] == $this->field_type) {
$field_data = \Drupal::database()
->select('field_data_' . $field_name, 'f')
->fields('f', array(
'entity_type',
'entity_id',
'delta',
$field_name . '_' . $columns[0],
))
->condition('deleted', 0);
$field_data
->addExpression(":name", 'field_name', array(
':name' => $field_name,
));
$field_data = $field_data
->execute()
->fetchAll();
$this->result = array_merge($this->result, $field_data);
}
}
}