Как создать пользователя в базе данных вручную в Yii2? - PullRequest
0 голосов
/ 26 июня 2018

Я делаю импорт пользователей из CSV-файла в базу данных.В CSV-файле у меня есть своего рода имя пользователя и строка пароля.Так как мне создать нового пользователя вручную?Как я понимаю, мне нужно getPasswordHash и generateAuthKey (последний генерирует случайную строку).Но, вероятно, я теряю что-то важное, поскольку при попытке войти в систему я получаю сообщение об ошибке, что имя пользователя или пароль неверны.Кто-нибудь когда-нибудь сталкивался с такой ситуацией?Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

Я думаю, вы забыли установить активный статус нового пользователя.Вы должны проверить это в Логин метод Пользователь модель в вашем приложении или в actionLogin SiteController .Например, в моем приложении метод 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();
}
0 голосов
/ 26 июня 2018

Это должен быть минимум, необходимый в вашем случае.$username и $password являются необработанными значениями, взятыми из CSV.Помните, что будет применяться проверка.

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

return $user->save();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...