From 62f591045ecd6a0e47440e9134397b4ce9fc7c62 Mon Sep 17 00:00:00 2001 From: wolfcode <37436228+wolf-leo@users.noreply.github.com> Date: Wed, 11 Dec 2024 17:00:34 +0800 Subject: [PATCH] refactor(admin): enhance delete method to support custom primary keys - Update delete method in Curd trait to accept Request parameter - Add support for deleting multiple records using 'id' parameter - Improve error handling for non-existent data --- app/admin/controller/system/Admin.php | 3 ++- app/admin/controller/system/Menu.php | 3 ++- app/admin/traits/Curd.php | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/admin/controller/system/Admin.php b/app/admin/controller/system/Admin.php index 8407755..f70f8b4 100644 --- a/app/admin/controller/system/Admin.php +++ b/app/admin/controller/system/Admin.php @@ -150,9 +150,10 @@ class Admin extends AdminController /** * @NodeAnnotation(title="删除") */ - public function delete($id): void + public function delete(Request $request): void { $this->checkPostRequest(); + $id = $request->post('id'); $row = $this->model->whereIn('id', $id)->select(); $row->isEmpty() && $this->error('数据不存在'); $id == AdminConstant::SUPER_ADMIN_ID && $this->error('超级管理员不允许修改'); diff --git a/app/admin/controller/system/Menu.php b/app/admin/controller/system/Menu.php index 6b2f0d0..113a11c 100644 --- a/app/admin/controller/system/Menu.php +++ b/app/admin/controller/system/Menu.php @@ -132,9 +132,10 @@ class Menu extends AdminController /** * @NodeAnnotation(title="删除") */ - public function delete($id): void + public function delete(Request $request): void { $this->checkPostRequest(); + $id = $request->post('id'); $row = $this->model->whereIn('id', $id)->select(); empty($row) && $this->error('数据不存在'); try { diff --git a/app/admin/traits/Curd.php b/app/admin/traits/Curd.php index 3727054..e949ec7 100644 --- a/app/admin/traits/Curd.php +++ b/app/admin/traits/Curd.php @@ -88,8 +88,10 @@ trait Curd /** * @NodeAnnotation(title="删除") */ - public function delete($id): void + public function delete(Request $request): void { + // 如果不是id作为主键 请在对应的控制器中覆盖重写 + $id = $request->param('id', []); $this->checkPostRequest(); $row = $this->model->whereIn('id', $id)->select(); $row->isEmpty() && $this->error('数据不存在');