Muhammad Muazzam
Muhammad Muazzam

Reputation: 2800

how to hash a password laravel 5.2 model create

I'm creating admin user via model and it saving record successfully but password is not being hashed as follows:

$request->password = bcrypt($request->input('password'));
    Admin::create($request->except('_token'));

Upvotes: 1

Views: 430

Answers (2)

Morteza Rajabi
Morteza Rajabi

Reputation: 2913

you can not modify $request properties like that.

Give it a try:

$input = $request->except('_token');
$input['password'] = bcrypt($input['password']);

Admin::create($input);

OR, handle it in your Admin Model

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

Then you can

Admin::create($request->except('_token'));

Upvotes: 1

Harlan Wilton
Harlan Wilton

Reputation: 504

Take a look at Laravel's Hashing documentation. It shows that you should be hashing any strings like so:

Hash::make($request->newPassword)

However looking at your code, i'd say this issue is actually the fact you're trying to modify the request $request->password, this is not going to work how you expect. Look at your Admin model class and see what the code is expecting, perhaps this is already in built if you pass the correct arguments.

Upvotes: 0

Related Questions