userResource(); $id = (int) optional($user)->id; $rules = [ 'account' => 'required|max:100|unique:admin_users,account,'.$id, 'name' => 'required|max:100', 'avatar' => 'nullable|string|max:255', 'job_number' => 'required|max:6|min:3|unique:admin_users,job_number,'.$id, 'status' => 'required|boolean', 'phone' => 'required', 'password' => 'required|between:6,20|confirmed', 'roles' => 'array', 'areas' => 'array', 'roles.*' => 'exists:admin_roles,id', 'permissions' => 'array', 'permissions.*' => 'exists:admin_permissions,id', ]; if ($this->isMethod('put')) { $rules = Arr::only($rules, $this->keys()); // 如果更新时, 没填密码, 则不用验证 if (!$this->post('password')) { unset($rules['password']); } // 处理更新时,图片没有改,则不用验证 if ($this->input('avatar') === Storage::disk('uploads')->url($user->avatar)) { unset($rules['avatar']); } } return $rules; } /** * @return AdminUser */ public function userResource() { return $this->route('admin_user'); } public function attributes() { return [ 'account' => '账号', 'name' => '姓名', 'password' => '密码', 'job_number' => '工号', 'status' => '状态', 'pid' => '父id', 'phone' => '手机号', 'roles' => '角色', 'areas' => '区域', 'roles.*' => '角色', 'permissions' => '权限', 'permissions.*' => '权限', 'avatar' => '头像', ]; } }