laravel-admin集成laravel自带的user系统

laravel-admin默认有一个后台用户系统,和laravel的是2个不同的表和session,有时候我们会需要2个同时存在

Posted by 昆山吴彦祖 on 2019.02.14

但是当你在laravel-amdin中生成了user的控制器以后,会发现并不能正常的处理用户密码。这是因为laravel系统默认会对user的password进行hash


但是我们还是需要在laravel-admin中可以更新user的密码,怎么办呢?

1、重构 app/admin/UserController.php store和update方法

// 重构store方法,每次创建用户时候对用户password 进行hash加密
	public function store(Request $request)
    {
		$input = $request->all();
		$input['password'] = Hash::make($input['password']);
		//dd($input);
		return $this->form()->store($input);
    }
	
	// 重构update方法,每次更新用户 判断用户是否更改密码。如果有 进行hash加密
	public function update(Request $request,$id)
    {
		$input = $request->all();
		if($input['password']!= User::find($id)->password ){
			$input['password'] = Hash::make($input['password']);
		}
		//dd($input);
		return $this->form()->update($id,$input);
    }


2、更改 laravel-admin 默认文件 /vendor/encore/laravel-admin/src/Form.php 的 store 方法

public function store()
    {
        $data = Input::all();
        ..
        ..
    }

改为

public function store($data = null)
    {
        $data = $data?$data:(Input::all());
        ..
        ..
    }


搞定!


laravel_admin