今天我恢复了我的Macbook OS优胜美地,我忘了备份我的.env
文件,因此我丢失了APP_KEY
。
现在我的所有口号都不再适用了,我明白了。所以我这样做:
php artisan key:generate
然后我使用以下代码更新所有密码:
Route::get('/', function () {
$users = new Project\DB\User;
$users->update(['password' => Hash::make('newPasswordHere')]);
});
但是当我尝试使用系统更新用户并更改密码时,我无法登录。这是update($id)
方法的代码:
$user = User::getById($id);
$user->role_id = $request->get('role_id');
$user->first_name = $request->get('first_name');
$user->last_name = $request->get('last_name');
$user->email = $request->get('email');
if ($request->has('password')) {
$user->password = Hash::make($request->get('password'));
}
$user->active = $request->get('active');
$user->update();
我做错了什么?
PHP 5.6.11 (cli) (built: Jul 19 2015 15:15:07)
nginx version: nginx/1.8.0
如果您需要更多信息,请告诉我。
答案 0 :(得分:0)
我不相信这是问题,但我必须告诉他们真正的原因和解决方案:
在项目开始时,我设置了一个改变为密码属性。
这个mutator反过来已经加密了密码(是的......我知道,我不相信我没有看到它)。
public function setPasswordAttribute($value)
{
$this->attributes['password'] = bcrypt($value);
}
最后,问题的解决方案是不加密控制器上的密码:
if ($request->has('password')) {
$user->password = $request->get('password');
}
抱歉,谢谢你的时间!