如何在Yii2中手动在数据库中创建用户?

时间:2018-06-26 05:05:20

标签: database yii2 registration

我确实将用户从csv文件导入数据库。在csv文件中,我有一些用户名和密码字符串。那么,如何手动创建一个新用户? 据我了解,我需要getPasswordHashgenerateAuthKey(最后一个生成随机字符串)。但是可能我失去了一些重要的东西,因为当我尝试登录时,我收到一个错误,提示用户名或密码不正确。有没有人经历过这种情况?预先感谢。

2 个答案:

答案 0 :(得分:0)

这应该是您所需要的最低要求。 $username$password是从CSV获取的原始值。请记住,将应用验证。

$user = new User();
$user->username = $username;
$user->setPassword($password);
$user->generateAuthKey();

return $user->save();

答案 1 :(得分:0)

我认为您忘记设置新用户的活动状态。您应该在应用中使用 User 模型的 Login 方法或在 SiteController actionLogin 中进行检查。例如,在我的应用中,登录方法是:

public function login()
{
    if ($this->validate() and $this->getUser()->status !== User::INACTIVE_STATUS) {
       return Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600 * 24 * 30 : 0);
    }
    return false;
}

如果您显示代码,我们可以帮助您更快)

因此,如果要从csv文件导入用户列表,则可能会循环处理,请尝试:

foreach ($csv_data as $user_data) {
   $user = new User();
   $user->setPassword($password);
   $user->username = $user_data->username // or anything else, depending on your code
   $user->status = 1  // or = User::STATUS_ACTIVE, depending on your code
   $user->save();
}