Не вставлять данные в БД как следует - PullRequest
0 голосов
/ 16 мая 2019

У меня есть этот фрагмент кода внутри моего UserController.

public function update(Request $r, User $user)
{
    $unEncryptedPassword = $r->password;
    $encryptedPassword = bcrypt($unEncryptedPassword);

    $r->password = $encryptedPassword;

    $user->update($r->all());

    return redirect('/users')->with('update', '');
}

Я намерен зашифровать пароль и затем вставить зашифрованный пароль в базу данных.Непосредственно перед $user->update($r->all()); я проверил эхо зашифрованного пароля, и это действительно так.Проблема в том, что когда я отправляю эту форму, она вставляет незашифрованный пароль, и я не знаю почему.

Ответы [ 2 ]

2 голосов
/ 16 мая 2019

Попробуйте вместо изменения запроса:

public function update(Request $r, User $user)
    {
        $unEncryptedPassword = $r->password;
        $encryptedPassword = bcrypt($unEncryptedPassword);
        $requestData = $r->all();

        $requestData['password'] = $encryptedPassword;

        $user->update($requestData);
        return redirect('/users')->with('update', '');
    }
1 голос
/ 16 мая 2019

Попробуйте добавить этот мутатор в модель User.

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

А затем просто передайте пароль в текстовом виде модели пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...