class ReferenceBase
Same name in other branches
- 10 core/modules/migrate_drupal/src/Plugin/migrate/field/ReferenceBase.php \Drupal\migrate_drupal\Plugin\migrate\field\ReferenceBase
- 11.x core/modules/migrate_drupal/src/Plugin/migrate/field/ReferenceBase.php \Drupal\migrate_drupal\Plugin\migrate\field\ReferenceBase
Base class for Drupal reference fields.
Hierarchy
- class \Drupal\migrate_drupal\Plugin\migrate\field\ReferenceBase extends \Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase
Expanded class hierarchy of ReferenceBase
4 files declare their use of ReferenceBase
- NodeReference.php in core/
modules/ migrate_drupal/ src/ Plugin/ migrate/ field/ d6/ NodeReference.php - NodeReference.php in core/
modules/ migrate_drupal/ src/ Plugin/ migrate/ field/ d7/ NodeReference.php - UserReference.php in core/
modules/ migrate_drupal/ src/ Plugin/ migrate/ field/ d6/ UserReference.php - UserReference.php in core/
modules/ migrate_drupal/ src/ Plugin/ migrate/ field/ d7/ UserReference.php
File
-
core/
modules/ migrate_drupal/ src/ Plugin/ migrate/ field/ ReferenceBase.php, line 10
Namespace
Drupal\migrate_drupal\Plugin\migrate\fieldView source
abstract class ReferenceBase extends FieldPluginBase {
/**
* Gets the plugin ID for the reference type migration.
*
* The reference type migration will be added as a required dependency.
*
* @return string
* The plugin id.
*/
protected abstract function getEntityTypeMigrationId();
/**
* Gets the name of the field property which holds the entity ID.
*
* @return string
* The entity id.
*/
protected abstract function entityId();
/**
* {@inheritdoc}
*/
public function alterFieldInstanceMigration(MigrationInterface $migration) {
parent::alterFieldInstanceMigration($migration);
// Add the reference migration as a required dependency to this migration.
$migration_dependencies = $migration->getMigrationDependencies();
array_push($migration_dependencies['required'], $this->getEntityTypeMigrationId());
$migration_dependencies['required'] = array_unique($migration_dependencies['required']);
$migration->set('migration_dependencies', $migration_dependencies);
}
/**
* {@inheritdoc}
*/
public function defineValueProcessPipeline(MigrationInterface $migration, $field_name, $data) {
$process = [
'plugin' => 'sub_process',
'source' => $field_name,
'process' => [
'target_id' => $this->entityId(),
],
];
$migration->setProcessOfProperty($field_name, $process);
}
/**
* {@inheritdoc}
*/
public function getFieldWidgetMap() {
return [
$this->pluginId . '_select' => 'options_select',
$this->pluginId . '_buttons' => 'options_buttons',
$this->pluginId . '_autocomplete' => 'entity_reference_autocomplete_tags',
];
}
}
Members
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.