在Drupal6上从hook_init内调用user_save失败

时间:2009-12-14 00:01:22

标签: drupal

我有一个实现hook_init的模块。

在其中,我有一个案例,我尝试像保存

一样调用user_save
user_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);

1 个答案:

答案 0 :(得分:1)

查看文档:

  

<强>参数
  $ account用户要修改或添加的$ user对象。如果省略$ user-&gt; uid,则会添加新用户   $ array(可选)要保存的字段和值数组。例如,array('name'=&gt;'我的名字');将字段设置为NULL会将其从数据列中删除。

因此,当您调用user_save()时,第一个参数必须是用户对象。如果该用户对象没有uid,或者是您的情况下的字符串,则将创建新用户。这里第二个参数是必要的。它不需要使用该函数,但由于它包含您要保存的所有值,因此您不会尝试创建完全没有数据的用户。没有密码,用户名等的用户有什么用途。因此,也需要最少的数据,因此Drupal将知道要保存的内容。