如何在 Yii2 中手动在数据库中创建用户?
How to create user in database manually in Yii2?
我确实将用户从 csv 文件导入到数据库中。在 csv 文件中,我有一些用户名和密码字符串。那么如何手动创建新用户呢?
据我了解,我需要 getPasswordHash
和 generateAuthKey
(最后一个生成随机字符串)。但可能我丢失了一些重要的东西,因为当我尝试登录时出现用户名或密码不正确的错误。有没有人遇到过这种情况?提前致谢。
这应该是您的情况所需的最低要求。 $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();
}
我确实将用户从 csv 文件导入到数据库中。在 csv 文件中,我有一些用户名和密码字符串。那么如何手动创建新用户呢?
据我了解,我需要 getPasswordHash
和 generateAuthKey
(最后一个生成随机字符串)。但可能我丢失了一些重要的东西,因为当我尝试登录时出现用户名或密码不正确的错误。有没有人遇到过这种情况?提前致谢。
这应该是您的情况所需的最低要求。 $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();
}