it-swarm.com.de

Benutzer-ID vom Benutzernamen abrufen

Ich weiß, dass ich Benutzerinformationen von jedem Benutzer mit dem Objekt getUser( $id ) erhalten kann:

$user = JFactory::getUser();

if (!$user->guest) {
  echo 'You are logged in as:<br />';
  echo 'User name: ' . $user->username . '<br />';
  echo 'Real name: ' . $user->name . '<br />';
  echo 'User ID  : ' . $user->id . '<br />';
}

Aber ist es möglich, die ID eines Benutzers anhand des Benutzernamens (oder besser anhand des tatsächlichen Namens) zu ermitteln? Beachten Sie, dass ich nicht nach dem aktuell angemeldeten Benutzer suche, sondern nach einem bestimmten Benutzer.

Wenn ich nur den Benutzernamen gebe, möchte ich so etwas wiederholen:

Jon Doe has user ID: 43
Jane Doe has user ID: 82

Kann es gemacht werden?

5
johanpw

Ganz einfach, Sie können JUserHelper verwenden, um dies zu erreichen:

$username = 'jophanpw';
$userId    = JUserHelper::getUserId($username);

echo $userId;

Der gesamte obige Code führt die folgende Datenbankabfrage aus:

public static function getUserId($username)
{
    $db = JFactory::getDbo();
    $query = $db->getQuery(true)
        ->select($db->quoteName('id'))
        ->from($db->quoteName('#__users'))
        ->where($db->quoteName('username') . ' = ' . $db->quote($username));
    $db->setQuery($query, 0, 1);

    return $db->loadResult();
}
10
Lodder