但是当你在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());
..
..
}
搞定!