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