我有一个实现hook_init的模块。
在其中,我有一个案例,我尝试像保存
一样调用user_saveuser_save ('');
我认为这应该有效,因为我没有设置一个uid,所以它应该创建一个新的。它还说$ array应该被允许为空。 但是,这总是返回FALSE。 ??
我也尝试在$ array中设置这些值,但这也不起作用:
$foo = array(
'name' => 'the new user',
'mail' => 'the new user mail',
'pass' => user_password(),
'status' => 1,
);
$new_user = user_save ('', $foo);
答案 0 :(得分:1)
查看文档:
<强>参数强>
$ account用户要修改或添加的$ user对象。如果省略$ user-&gt; uid,则会添加新用户 $ array(可选)要保存的字段和值数组。例如,array('name'=&gt;'我的名字');将字段设置为NULL会将其从数据列中删除。
因此,当您调用user_save()
时,第一个参数必须是用户对象。如果该用户对象没有uid,或者是您的情况下的字符串,则将创建新用户。这里第二个参数是必要的。它不需要使用该函数,但由于它包含您要保存的所有值,因此您不会尝试创建完全没有数据的用户。没有密码,用户名等的用户有什么用途。因此,也需要最少的数据,因此Drupal将知道要保存的内容。