如何在Yii2中手动在数据库中创建用户? [英] How to create user in database manually in Yii2?

查看:72
本文介绍了如何在Yii2中手动在数据库中创建用户?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I do import of users from a csv file to the database. In csv file I have some kinda username and password string. So how do I create a new user manually? As I understand I need to getPasswordHash and generateAuthKey (last one generates random string). But probably I loose something important since when I try to log in I get an error that Username or Password is incorrect. Did anyone ever experienced such situation? Thanks in advance.

推荐答案

我认为您忘记设置新用户的有效状态。您应该在应用程序中的 User 模型的 Login 方法中或在 SiteController actionLogin 中对其进行检查。例如,在我的应用中, login 方法是:

I think you forgot to set an active status of new User. You should check it in Login method of User model in your app, or in actionLogin of SiteController. For example, in my app the login method is:

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

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

If you show your code we can help you faster)

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

So if you are importing a list of users from a csv file, you will probably process this in a loop, try:

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

这篇关于如何在Yii2中手动在数据库中创建用户?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆