Drupal でユーザー名から uid を取得するコア関数はありますか? または、db クエリを実行する必要がありますか? 私のフィールドは、「#autocomplete_path」が「user/autocomplete」に等しいテキストフィールドです
5 に答える
機能を使用できます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
どういうわけか私はクエリを機能させることができませんでしたが、私はこれを見つけました:
$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
ユーザー ロード関数は非常に重いため、より多くのリソースを使用し、必要以上のデータを返します。
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;
}
注: このコードは改訂され、入力はエスケープされているため、コードはまったく危険ではありません。
$user
グローバル変数を使用して、ログインしているユーザーに関するすべての情報を取得できます。
コードは次のとおりです。
<?php
global $user;
$uid = $user->uid;
echo $uid;
?>
私が知っていることではありませんが、このための既製の API 関数はありません。ただし、複数の場所が必要な場合は、独自に作成できます。データベースに uid を照会するのは、非常に単純でわかりやすいはずです。