9

是否有任何核心功能可以从 Drupal 中的用户名获取 uid?或者我应该执行一个数据库查询?我的字段是一个文本字段,“#autocomplete_path”等于“用户/自动完成”

4

5 回答 5

11

您可以使用该user_load功能。见http://api.drupal.org/api/function/user_load/6

特别参见http://api.drupal.org/api/function/user_load/6#comment-6439

所以你会做这样的事情:

// $name is the user name
$account = user_load(array('name' => check_plain($name)));
// uid is now available as $account->uid
于 2010-10-05T06:36:51.160 回答
10

不知何故,我无法使查询工作,但我发现了这一点:

$user = user_load_by_name($username);
$user_id = $user->uid;

见:http ://api.drupal.org/api/drupal/modules%21user%21user.module/function/user_load_by_name/7

于 2012-09-05T10:55:33.510 回答
5

用户负载功能非常繁重,会占用更多资源并返回比所需更多的数据,这是一个不错的小功能:

function get_uid($username)
{    
    // Function that returns the uid based on the username given
    $user = db_fetch_object(db_query("SELECT uid FROM users WHERE name=':username'", array(":username" => $username)));

    return $user->uid;
}

注意:此代码已修改,输入已转义,因此该代码在任何方面都没有危险。

于 2011-06-17T05:44:00.147 回答
2

$user您可以使用全局变量获取有关已登录用户的所有信息。

代码是:

<?php
global $user;
$uid = $user->uid;
echo $uid;
?>
于 2013-01-26T05:03:31.467 回答
0

没有现成的API函数,我不知道。但如果你需要几个地方,你可以自己做。查询 db 的 uid 应该非常简单直接。

于 2010-10-05T06:37:06.557 回答