public function EncryptedFieldValueManager::createEncryptedFieldValue in Field Encryption 8.2
Create an encrypted field value, or update an existing one.
Parameters
\Drupal\Core\Entity\ContentEntityInterface $entity: The entity to process.
string $field_name: The field name to save.
int $delta: The field delta to save.
string $property: The field property to save.
string $encrypted_value: The encrypted value to save.
Return value
\Drupal\field_encrypt\Entity\EncryptedFieldValueInterface The created EncryptedFieldValue entity.
Overrides EncryptedFieldValueManagerInterface::createEncryptedFieldValue
File
- src/
EncryptedFieldValueManager.php, line 35
Class
- EncryptedFieldValueManager
- Manager containing common functions to manage EncryptedFieldValue entities.
Namespace
Drupal\field_encryptCode
public function createEncryptedFieldValue(ContentEntityInterface $entity, $field_name, $delta, $property, $encrypted_value) {
$langcode = $entity
->language()
->getId();
if ($encrypted_field_value = $this
->getExistingEntity($entity, $field_name, $delta, $property)) {
$encrypted_field_value
->setEncryptedValue($encrypted_value);
$encrypted_field_value
->save();
}
else {
// Create a new EncryptedFieldValue entity. The parent entity's (revision)
// id might not be known yet, so the EncryptedFieldValue will be saved
// by saveEncryptedFieldValues() later on.
$encrypted_field_value = $this->entityManager
->getStorage('encrypted_field_value')
->create([
'entity_type' => $entity
->getEntityTypeId(),
'entity_id' => !$entity
->isNew() ? $entity
->id() : NULL,
'entity_revision_id' => $this
->getEntityRevisionId($entity),
'field_name' => $field_name,
'field_property' => $property,
'field_delta' => $delta,
'encrypted_value' => $encrypted_value,
'langcode' => $langcode,
]);
$entity->encrypted_field_values[] = $encrypted_field_value;
}
return $encrypted_field_value;
}