9

Drupal でユーザー名から uid を取得するコア関数はありますか? または、db クエリを実行する必要がありますか? 私のフィールドは、「#autocomplete_path」が「user/autocomplete」に等しいテキストフィールドです

4

5 に答える 5

11

機能を使用できますuser_loadhttp://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 関数はありません。ただし、複数の場所が必要な場合は、独自に作成できます。データベースに uid を照会するのは、非常に単純でわかりやすいはずです。

于 2010-10-05T06:37:06.557 に答える