it-swarm.com.de

Können Sie ein Feld in einem Inhaltstyp eindeutig machen?

Ich habe einen Mitarbeiter Inhaltstyp mit einem ID Feld.

Kann ich das Feld eindeutig machen, so dass Drupal mich daran hindern würde, dieselbe ID mehr als einmal versehentlich einzugeben?

2
user89532

Sie können Ihrem Feld eine Validierungsbeschränkung hinzufügen.
Dafür gibt es zwei Möglichkeiten:

  1. Festlegen einer Validierungsbeschränkung für ein Feld, das Sie nicht durch Implementierung von hook_entity_bundle_field_info_alter :
function YOURMODULE_entity_bundle_field_info_alter(&$fields, EntityTypeInterface $entity_type, $bundle) {
  if ($entity_type->id() === 'ENTITY_TYPE' && $bundle === 'BUNDLE_NAME') {
    if (isset($fields['FIELD_NAME'])) {
      $fields['FIELD_NAME']->addConstraint('UniqueField');
    }
  }
}
  1. Festlegen einer Validierungsbeschränkung für ein Feld, das Sie in baseFieldDefinitions definiert haben
public static function baseFieldDefinitions(EntityTypeInterface $entityType) {
 $fields['FIELD_NAME'] = BaseFieldDefinition::create('string')
   ->setLabel(t('MY UNIQUE FIELD'))
   ->addConstraint('UniqueField');

 return $fields;
}

Wenn Sie Ihre eigene Validierungsbeschränkung erstellen möchten, können Sie hier überprüfen.

1
Iheb