You are here

public function AutosaveEntityFormDatabaseStorage::getEntity in Autosave Form 8

Retrieves the stored entity.

Parameters

$form_id: The form id.

string $entity_type_id: The entity type id of the entity.

mixed $entity_id: The id of the entity.

string $langcode: The language code of the original entity.

$uid: The user id.

$form_session_id: (optional) The form session id.

$timestamp: (optional) The timestamp for which to load the entity.

Return value

\Drupal\Core\Entity\EntityInterface The entity.

Overrides AutosaveEntityFormStorageInterface::getEntity

File

src/Storage/AutosaveEntityFormDatabaseStorage.php, line 125

Class

AutosaveEntityFormDatabaseStorage
A database backend for autosave of entity forms.

Namespace

Drupal\autosave_form\Storage

Code

public function getEntity($form_id, $entity_type_id, $entity_id, $langcode, $uid, $form_session_id = NULL, $autosaved_timestamp = NULL) {
  $entity = NULL;
  $query = $this->connection
    ->select(static::AUTOSAVE_ENTITY_FORM_TABLE, 'cefa')
    ->fields('cefa', [
    'entity',
  ])
    ->orderBy('timestamp', 'DESC')
    ->condition('form_id', $form_id);
  if (isset($form_session_id)) {
    $query
      ->condition('form_session_id', $form_session_id);
  }
  $query
    ->condition('entity_type_id', $entity_type_id)
    ->condition('entity_id', $entity_id)
    ->condition('langcode', $langcode)
    ->condition('uid', $uid);
  if (isset($autosaved_timestamp)) {
    $query
      ->condition('timestamp', $autosaved_timestamp);
  }
  $data = $query
    ->execute()
    ->fetchAssoc();
  if ($data) {

    // Prepare the entity object.
    $entity = $this->serializer
      ->decode($data['entity']);
  }
  return $entity;
}