From d5b15f9246dc2a1a465e6ca0fca77b5b60e9f9d7 Mon Sep 17 00:00:00 2001 From: liaofei <136327134@qq.com> Date: Thu, 4 May 2023 18:47:38 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=88=9B=E5=BB=BA=E8=A1=A8?= =?UTF-8?q?=E7=9A=84=E9=A1=BA=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/services/system/SystemCrudServices.php | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/crmeb/app/services/system/SystemCrudServices.php b/crmeb/app/services/system/SystemCrudServices.php index 0109ef53f..7a0ee053f 100644 --- a/crmeb/app/services/system/SystemCrudServices.php +++ b/crmeb/app/services/system/SystemCrudServices.php @@ -502,7 +502,7 @@ class SystemCrudServices extends BaseServices $data['softDelete'] = false; - $tableInfo = null; + //先检查表存在则 if ($id) { $this->updateFromCommon($tableName, $tableComment); //删除数据库表 @@ -516,7 +516,9 @@ class SystemCrudServices extends BaseServices throw new AdminException('表已经被生成过,请在列表中进行修改'); } } + //创建数据库 + $tableCreateInfo = null; if ($tableField && (!$data['isTable'] || !$tableInfo)) { $tableCreateInfo = $this->makeDatebase($tableName, $tableComment, $tableField); if ($tableCreateInfo['softDelete']) { @@ -530,6 +532,7 @@ class SystemCrudServices extends BaseServices throw new AdminException(500049, ['_name' => $tableName]); } + //读取字段 //读取数据库字段信息 $tableInfo = $this->getTableInfo($tableName); @@ -572,7 +575,7 @@ class SystemCrudServices extends BaseServices $crudInfo = $this->dao->get($id); } - $res = $this->transaction(function () use ($crudInfo, $tableInfo, $modelName, $filePath, $tableName, $routeName, $data, $dataMenu) { + $res = $this->transaction(function () use ($tableCreateInfo, $crudInfo, $tableInfo, $modelName, $filePath, $tableName, $routeName, $data, $dataMenu) { $routeService = app()->make(SystemRouteServices::class); $meunService = app()->make(SystemMenusServices::class); //修改菜单名称 @@ -681,6 +684,12 @@ class SystemCrudServices extends BaseServices $makePath[$key] = $item['path']; } + if ($tableCreateInfo && isset($tableCreateInfo['table']) && $tableCreateInfo['table'] instanceof Table) { + //创建数据库 + $tableCreateInfo['table']->create(); + $tableInfo = $this->getTableInfo($tableName); + } + $crudDate = [ 'pid' => $data['pid'], 'name' => $data['menuName'], @@ -816,10 +825,8 @@ class SystemCrudServices extends BaseServices $table->addIndex($item); } } - //执行创建 - $table->create(); - return compact('indexField', 'softDelete', 'timestamps'); + return compact('indexField', 'softDelete', 'timestamps', 'table'); } /**