/** * 执行更新管理员操作 * @param \App\Model\Admin $admin * * @return $this|\App\Http\Controllers\Controller|\Illuminate\Contracts\Routing\ResponseFactory */ public function update(Admin $admin) { $this->validate($this->request(), ['admin_name' => 'required|min:5|max:15|unique:admins,admin_name,' . $admin->admin_id . ',admin_id', 'email' => 'required|email|unique:admins,email,' . $admin->admin_id . ',admin_id', 'admin_status' => 'required|in:' . implode(',', array_keys(AdminEnum::$statusForm)), 'admin_role' => 'required|in:' . implode(',', array_keys(AdminEnum::$rolesForm)), 'admin_pass' => 'min:5|max:20', 'admin_pass_confirm' => 'required_with:admin_pass|same:admin_pass']); $form = $this->request()->only(['admin_name', 'admin_role', 'email', 'admin_status']); if ($admin_pass = $this->request()->get('admin_pass')) { $form['admin_pass'] = $admin_pass; } if ($admin->update($form)) { return $this->success('保存成功', $admin); } return $this->error('修改失败,请稍后再试'); }