【发布时间】:2018-07-07 22:54:40
【问题描述】:
我想在 Controller 中做一个密码哈希,以便将信息存储到数据库中。
我的存储功能是;
public function store(Request $request)
{
$validator = \Validator::make($request->all(), ['fullname' => 'required',
'email' => 'required|email|max:255|unique:users',
'username' => 'required|max:255|unique:users',
'password' => 'required',]);
if ($validator->fails()) {
return response()->json([
'1' => 'Your information not stored!',
]);
}
else {
$newuser = new User;
$newuser -> fullname = request('fullname');
$newuser -> email = request('email');
$newuser -> password = request('password');
$newuser -> username = request('username');
$newuser -> status = 1;
$newuser -> role_id = 1;
$newuser -> save();
return response()->json([
'2' => 'Your information stored successfuly!',
]);
}
这可以正常工作。但是,我想对密码进行哈希处理。
https://laravel.com/docs/5.0/hashing
https://laracasts.com/discuss/channels/requests/how-to-hash-user-input-password-when-using-form-validation-in-form-request-laravel-5
public function setPasswordAttribute($value)
{
$this->attributes['password'] = bcrypt($value);
}
这不起作用。大家有什么建议吗?
【问题讨论】:
-
dd($newuser ) 保存前,这里提供代码
-
向我们展示您的完整模型课程
-
$newuser->password = bcrypt(request('password'));是您需要做的所有事情。 -
我猜他正在尝试使用 mutator
-
$newuser->password = bcrypt($request('password'));