public function UserData::get

Implements \Drupal\user\UserDataInterface::get().

Overrides UserDataInterface::get

File

drupal/core/modules/user/lib/Drupal/user/UserData.php, line 37
Contains Drupal\user\UserData.

Class

UserData
Defines the user data service.

Namespace

Drupal\user

Code

public function get($module, $uid = NULL, $name = NULL) {
  $query = $this->connection
    ->select('users_data', 'ud')
    ->fields('ud')
    ->condition('module', $module);
  if (isset($uid)) {
    $query
      ->condition('uid', $uid);
  }
  if (isset($name)) {
    $query
      ->condition('name', $name);
  }
  $result = $query
    ->execute();

  // If $module, $uid, and $name was passed, return the value.
  if (isset($name) && isset($uid)) {
    $result = $result
      ->fetchAllAssoc('uid');
    if (isset($result[$uid])) {
      return $result[$uid]->serialized ? unserialize($result[$uid]->value) : $result[$uid]->value;
    }
    return NULL;
  }
  elseif (isset($uid)) {
    $return = array();
    foreach ($result as $record) {
      $return[$record->name] = $record->serialized ? unserialize($record->value) : $record->value;
    }
    return $return;
  }
  elseif (isset($name)) {
    $return = array();
    foreach ($result as $record) {
      $return[$record->uid] = $record->serialized ? unserialize($record->value) : $record->value;
    }
    return $return;
  }
  else {
    $return = array();
    foreach ($result as $record) {
      $return[$record->uid][$record->name] = $record->serialized ? unserialize($record->value) : $record->value;
    }
    return $return;
  }
}