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

How to create user in database manually in Yii2?

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

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

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

return $user->save();

我想你忘了设置新用户的活动状态。您应该在您的应用程序的 User 模型的 Login 方法中检查它,或者在 actionLogin 中检查它18=]站点控制器。例如,在我的应用程序中,login 方法是:

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();
}