protected function ExifSettingsController::addFieldToEntityType in Exif 8
Same name and namespace in other branches
- 8.2 src/Controller/ExifSettingsController.php \Drupal\exif\Controller\ExifSettingsController::addFieldToEntityType()
Add a Field to an Entity Type.
Parameters
string $entity_type: The entity type name to be modified.
\Drupal\Core\Entity\EntityInterface $type: The definition of type.
string $fieldLabel: Field description (what is show in forms).
string $fieldName: Field name (the real one used internally).
string $fieldType: Name of the field type to be added.
string $fieldWidget: Name of the widget to use.
array $widgetSettings: Settings to set for the widget.
array $settings: Specific setting for the field (optional).
Throws
\Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException
\Drupal\Component\Plugin\Exception\PluginNotFoundException
\Drupal\Core\Entity\EntityStorageException
1 call to ExifSettingsController::addFieldToEntityType()
- ExifSettingsController::addFields in src/
Controller/ ExifSettingsController.php - Add a field to a entity type.
File
- src/
Controller/ ExifSettingsController.php, line 347
Class
- ExifSettingsController
- Class ExifSettingsController manage action of settings pages.
Namespace
Drupal\exif\ControllerCode
protected function addFieldToEntityType($entity_type, EntityInterface $type, $fieldLabel, $fieldName, $fieldType, $fieldWidget, array $widgetSettings = [], array $settings = []) {
$realFieldName = 'field_' . $fieldName;
$storage = $this
->getFieldStorageConfig();
$field_storage = $storage
->load($entity_type . '.' . $realFieldName);
if (empty($field_storage)) {
$field_storage_values = [
'field_name' => $realFieldName,
'field_label' => $fieldLabel,
'entity_type' => $entity_type,
'bundle' => $type
->id(),
'type' => $fieldType,
'translatable' => FALSE,
];
$storage
->create($field_storage_values)
->save();
}
$fieldSettings = [
'display_summary' => TRUE,
];
$this
->entityAddExtraField($entity_type, $type, $realFieldName, $fieldLabel, $fieldSettings, $fieldWidget, $widgetSettings);
}