如何在Laravel中添加到数据库哈希密码?

mrphzbgm  于 2023-01-06  发布在  其他
关注(0)|答案(1)|浏览(127)

我使用Laravel 9进行验证表单注册,现在我想添加正确的数据到数据库。这是我在控制器中的代码

public function store(RegistrationRequest $request)
{
    return redirect(
        route(
            'index.store',
            ['registration' => User::create($request->validated())]
        )
    );
}

但我的问题是我想插入到数据库哈希密码。在模型中我有函数哈希密码,但我不知道如何插入到数据库。

class User extends Model
{
use HasFactory;

protected $fillable = [
    'login', 'password', 'email'
];

public function opinions()
{
    return $this->hasMany(Opinion::class);
}

public function setPassword($value)
{
    $this->attributes['password'] = bcrypt($value);
}

}
如果有人能帮我解决这个问题,我将不胜感激。

vuktfyat

vuktfyat1#

因为你使用的是laravel 9,你有两个选项来存储散列密码。

protected function password(): Attribute
{
   return Attribute::make(
        set: fn($value) => bcrypt($value),
    );
}

参考:定义-a-增变基因
或者更古老的方法是

public function setPasswordAttribute($value)
{
     $this->attributes['password'] = bcrypt($value);
}

参考:Defining A Mutator

相关问题