在Drupal中是否有任何核心功能可以从用户名获取uid? 或者我应该执行数据库查询? 我的字段是一个文本字段,其中“#autocomplete_path”等于“user / autocomplete”
答案 0 :(得分: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
答案 1 :(得分: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
答案 2 :(得分: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;
}
注意:此代码已修订且输入已转义,因此代码无论如何都不会有危险。
答案 3 :(得分:2)
您可以使用全局$user
变量获取有关已登录用户的所有信息。
代码是:
<?php
global $user;
$uid = $user->uid;
echo $uid;
?>
答案 4 :(得分:0)
没有现成的API函数,这不是我所知道的。但如果你需要几个地方,你可以自己做。查询数据库的uid应该非常简单和直接。