我正在尝试创建一个新的Drupal 7用户,然后将该用户的UID分配给一个变量。我想存储此 UID,以便我可以创建一个新节点并将该用户分配为所有者。
问:有谁知道如何获取新创建的用户的 UID?
我的代码:
// CREATE USER
$newUser = array(
'name' => $refereeUsername,
'pass' => $refereePassword,
'mail' => $refereeEmail,
'status' => 1,
'init' => $refereeEmail,
'roles' => array(
2 => 'authenticated',
53 => 'Referer',
),
);
user_save($usera, $newUser);
// MY ATTEMPT TO GET THE NEWLY CREATED USER ID
$uidn = $usera->uid;
// CREATE NODE
$node = new stdClass;
$node->type = 'referee';
$node->title = 'Referee report for xx';
$node->uid = $uidn;
$node->status = FALSE;
$node->field_testff['und'][0]['value'] = "testworked";
node_object_prepare($node);
node_save($node);
user_save()
成功保存后返回用户对象(变量按值发送,而不是按引用发送)。试试这个:
$account = user_save($newUser);
$uidn = $account->uid;
为了解决这个问题,我使用了 user_load_by_mail() 函数。使用 user_save() 函数导致我的代码中出现完整性约束冲突错误。
$accountb = user_load_by_mail($email);
$uidn = $accountb->uid;
文档:https://api.drupal.org/api/drupal/modules%21user%21user.module/function/user_load_by_mail/7