Unverified Commit 7a5f478e authored by Stefan Auditor's avatar Stefan Auditor
Browse files

Issue #3318004 by sanduhrs: Add a machine_name like string basefield

parent 74b61fbc
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -5,6 +5,8 @@
 * Previewable Email Template install.
 */

use Drupal\Core\Field\BaseFieldDefinition;

/**
 * Rename PET table to pets for consistency.
 */
@@ -33,3 +35,27 @@ function pet_update_8403() {
  $storage_definitions->set('data_table', 'pets_field_data');
  $key_value_store_definition->set('pet.entity_type', $storage_definitions);
}

/**
 * Add new machine_name base field.
 */
function pet_update_8404() {
  $field_storage_definition = BaseFieldDefinition::create('string')
    ->setLabel(t('Mail ID'))
    ->setDescription(t('The mail ID.'))
    ->setSetting('max_length', 128)
    ->setRequired(TRUE)
    ->addConstraint('UniqueField', [])
    ->addConstraint('DeletedWorkspace', [])
    ->addPropertyConstraints('value', ['Regex' => ['pattern' => '/^[a-z0-9_]+$/']])
    ->setDisplayOptions('form', [
      'type' => 'machine_name',
      'weight' => -5,
      'settings' => [
        'source_field' => 'label',
      ],
    ]);

  \Drupal::entityDefinitionUpdateManager()
    ->installFieldStorageDefinition('machine_name', 'pet', 'pet', $field_storage_definition);
}
+16 −0
Original line number Diff line number Diff line
@@ -104,6 +104,22 @@ class Pet extends ContentEntityBase implements PetInterface {
      ->setDisplayConfigurable('form', TRUE)
      ->setDisplayConfigurable('view', TRUE);

    $fields['machine_name'] = BaseFieldDefinition::create('string')
      ->setLabel(t('Mail ID'))
      ->setDescription(t('The mail ID.'))
      ->setSetting('max_length', 128)
      ->setRequired(TRUE)
      ->addConstraint('UniqueField', [])
      ->addConstraint('DeletedWorkspace', [])
      ->addPropertyConstraints('value', ['Regex' => ['pattern' => '/^[a-z0-9_]+$/']])
      ->setDisplayOptions('form', [
        'type' => 'machine_name',
        'weight' => -5,
        'settings' => [
          'source_field' => 'label',
        ],
      ]);

    $fields['status'] = BaseFieldDefinition::create('integer')
      ->setLabel(t('Status'))
      ->setDescription(t('The exportable status of the entity.'))