public getID ( integer $ID, string | false $DatasetType = false, array $Options = [] ) : array | object | false | ||
$ID | integer | The ID of the user. |
$DatasetType | string | false | Whether to return an array or object. |
$Options | array | Additional options to affect fetching. Currently unused. |
return | array | object | false | Returns the user or **false** if the user wasn't found. |
public function getID($ID, $DatasetType = false, $Options = [])
{
if (!$ID) {
return false;
}
$DatasetType = $DatasetType ?: DATASET_TYPE_OBJECT;
// Check page cache, then memcached
$User = $this->getUserFromCache($ID, 'userid');
// If not, query DB
if ($User === Gdn_Cache::CACHEOP_FAILURE) {
$User = parent::getID($ID, DATASET_TYPE_ARRAY);
// We want to cache a non-existent user no-matter what.
if (!$User) {
$User = null;
}
$this->userCache($User, $ID);
} elseif (!$User) {
return false;
}
// Apply calculated fields
$this->setCalculatedFields($User);
// Allow FALSE returns
if ($User === false || is_null($User)) {
return false;
}
if (is_array($User) && $DatasetType == DATASET_TYPE_OBJECT) {
$User = (object) $User;
}
if (is_object($User) && $DatasetType == DATASET_TYPE_ARRAY) {
$User = (array) $User;
}
$this->EventArguments['LoadedUser'] =& $User;
$this->fireEvent('AfterGetID');
return $User;
}
public function getValidUser($user_id, $ret_type = DATASET_TYPE_ARRAY) { $UserModel = new UserModel(); $result = $UserModel->getID($user_id, $ret_type); return GetValue('Deleted', $result) === '1' ? FALSE : $result; // $result can still be false. }