Laravel实现修改密码操作

在LoginController.php中加入reset代码:
引入验证库:
use Illuminate\Support\Facades\Validator;

控制器代码如下:
数据库更新使用$user->update();,去除updated_at需要在Model中加入public $timestamps=false;

// 修改密码
    public function reset(){
      if ($input=Input::all()) {
        $rules = [
          'origin_pass'=>'required',
          'new_pass'=>'required|between:6,20|confirmed',
        ];
        $msg = [
          'required'=>'密码不能为空!',
          'new_pass.between'=>'密码必须在6~20位之间!',
          'new_pass.confirmed'=>'新密码与确认密码不一致!',
        ];
        $validator = Validator::make($input,$rules,$msg);
        if ($validator->passes()) {
          $user = User::where('username',session()->get('user')->username)->first();
          if (!$user || $user&&Crypt::decrypt($user->password)!=$input['origin_pass']) {
            return back()->withErrors('原密码错误!');
          }
          $user->password = Crypt::encrypt($input['new_pass']);
          $user->update();  // 更新密码
          session(['user'=>null]);
          return redirect('admin/login');
        }else{
          return back()->withErrors($validator);
        }
      } else {
        return view('admin/reset');
      }

    }

前端页面显示:

  • @if (count($errors)>0) {{ $errors->first() }} @else Forms @endif
    {{ csrf_field() }}

你可能感兴趣的:(Laravel实现修改密码操作)