Laravel生成密码并手动将用户插入数据库

时间:2018-03-30 14:48:08

标签: laravel authentication password-hash

我的用户很少,没有电子邮件和密码,我想通过添加来自freemail列的电子邮件和来自随机字符串的setup password来更新用户。

这是我的示例代码:

public function updateUserProfil()
{
    //find list user to be update(juste one to test)
    $users = User::where('isfree', '1')->first();
    //Random string generate
    $motdepasse = str_random(6);
    //find user
    $updateUser= User::find($users->id); 
    //setup fields
    $updateUser->email = $users->freemail;
    $updateUser->remember_token = str_random(10);
    $updateUser->motdepasse = $motdepasse;
    $updateUser->password = bcrypt($motdepasse);
    $updateUser->isfree = 0;
    $updateUser->save();
}

问题是,当我尝试连接email($users->freemail)password($motdepasse)时,这是非加密的随机字符串,我收到的错误是:

  

我的凭据无效

我错过了什么?

1 个答案:

答案 0 :(得分:0)

您可以使用update()更新行。所以你的代码必须是

public function updateUserProfil()
{
    //find list user to be update(juste one to test)
    $users = User::where('isfree', '1')->first();
    //Random string generate
    $motdepasse = str_random(6);
    //find user
    $updateUser= User::find($users->id);
    //setup fields
    $updateUser->update([
        'email'=>$users->freemail,
        'remember_token'=>str_random(10),
        'motdepasse'=>$motdepasse,
        'password'=>bcrypt($motdepasse),
        'isfree'=>0,
    ]);
}
相关问题