以编程方式创建drupal用户,然后存储新用户的UID



我正在尝试创建一个新的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

相关内容

最新更新