3 namespace Drupal\Core\Field\Plugin\Field\FieldType;
5 use Drupal\Core\Field\FieldStorageDefinitionInterface;
6 use Drupal\Core\Field\FieldDefinitionInterface;
9 * Defines the 'uuid' entity field type.
11 * The field uses a newly generated UUID as default value.
15 * label = @Translation("UUID"),
16 * description = @Translation("An entity field containing a UUID."),
18 * default_formatter = "string"
21 class UuidItem extends StringItem {
26 public static function defaultStorageSettings() {
30 ] + parent::defaultStorageSettings();
36 public function applyDefaultValue($notify = TRUE) {
37 // Default to one field item with a generated UUID.
38 $uuid = \Drupal::service('uuid');
39 $this->setValue(['value' => $uuid->generate()], $notify);
46 public static function schema(FieldStorageDefinitionInterface $field_definition) {
47 $schema = parent::schema($field_definition);
48 $schema['unique keys']['value'] = ['value'];
55 public static function generateSampleValue(FieldDefinitionInterface $field_definition) {
56 $values['value'] = \Drupal::service('uuid')->generate();