From 1985a4bacb754e1533d7d85659250aa759caa424 Mon Sep 17 00:00:00 2001 From: augushong Date: Wed, 20 Apr 2022 12:42:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E5=AE=89=E8=A3=85=E5=88=9B=E5=BB=BA=E6=97=B6=E9=97=B4=E5=A4=87?= =?UTF-8?q?=E6=B3=A8=EF=BC=9B=E5=AE=8C=E5=96=84curd=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E7=94=9F=E6=88=90=E6=96=B0=E8=A7=84=E5=88=99=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/service/curd/BuildCurdService.php | 149 +++++++++++++----- .../templates/controller/relationSelect.code | 2 + .../curd/templates/controller/select.code | 2 +- .../service/curd/templates/model/model.code | 3 +- .../curd/templates/model/relationSelect.code | 2 +- .../service/curd/templates/model/select.code | 5 +- .../20220419022952_system_admin.php | 2 +- .../migrations/20220419030557_system_auth.php | 2 +- .../20220419031527_system_config.php | 2 +- .../migrations/20220419032028_system_menu.php | 4 +- .../migrations/20220419032642_system_node.php | 2 +- .../20220419033507_system_quick.php | 2 +- .../20220419034810_system_uploadfile.php | 2 +- .../migrations/20220419102635_mall_cate.php | 2 +- .../migrations/20220419102916_mall_goods.php | 2 +- 15 files changed, 127 insertions(+), 56 deletions(-) create mode 100644 app/admin/service/curd/templates/controller/relationSelect.code diff --git a/app/admin/service/curd/BuildCurdService.php b/app/admin/service/curd/BuildCurdService.php index eb5b697..12d6179 100644 --- a/app/admin/service/curd/BuildCurdService.php +++ b/app/admin/service/curd/BuildCurdService.php @@ -7,6 +7,7 @@ use EasyAdmin\curd\exceptions\TableException; use EasyAdmin\tool\CommonTool; use think\exception\FileException; use think\facade\Db; +use think\helper\Str; /** * 快速构建系统CURD @@ -276,7 +277,6 @@ class BuildCurdService if ($vo['Field'] == 'delete_time') { $this->delete = true; } - } // 获取表名注释 @@ -617,7 +617,6 @@ class BuildCurdService if (in_array($key, ['describe', 'content', 'details'])) { $this->editorFields[] = $key; } - } return $this; } @@ -656,9 +655,9 @@ class BuildCurdService preg_match('/\([\s\S]*?\)/i', $string, $defineMatch); if (!empty($formTypeMatch) && isset($defineMatch[0])) { $colum['comment'] = str_replace($defineMatch[0], '', $colum['comment']); - if (isset($colum['formType']) && in_array($colum['formType'], ['images', 'files', 'select', 'switch', 'radio', 'checkbox', 'date','relation'])) { + if (isset($colum['formType']) && in_array($colum['formType'], ['images', 'files', 'select', 'switch', 'radio', 'checkbox', 'date', 'relation'])) { $define = str_replace(')', '', str_replace('(', '', $defineMatch[0])); - if (in_array($colum['formType'], ['select', 'switch', 'radio', 'checkbox','relation'])) { + if (in_array($colum['formType'], ['select', 'switch', 'radio', 'checkbox', 'relation'])) { $formatDefine = []; $explodeArray = explode(',', $define); foreach ($explodeArray as $vo) { @@ -686,13 +685,37 @@ class BuildCurdService */ protected function buildSelectController($field) { - $field = CommonTool::lineToHump(ucfirst($field)); - $name = "get{$field}List"; + + $name = $this->getFieldConstentName($field); + $var_name = $this->getFieldVarName($field); + $selectCode = CommonTool::replaceTemplate( $this->getTemplate("controller{$this->DS}select"), [ 'name' => $name, - ]); + 'var_name' => $var_name, + ] + ); + return $selectCode; + } + /** + * 构建关联下拉控制器 + * @param $field + * @return mixed + */ + protected function buildRelationSelectController($field) + { + + $name = $this->getFieldMethodName($field); + $var_name = $this->getFieldVarName($field); + + $selectCode = CommonTool::replaceTemplate( + $this->getTemplate("controller{$this->DS}relationSelect"), + [ + 'name' => $name, + 'var_name' => $var_name, + ] + ); return $selectCode; } @@ -704,8 +727,9 @@ class BuildCurdService */ protected function buildSelectModel($field, $array) { - $field = CommonTool::lineToHump(ucfirst($field)); - $name = "get{$field}List"; + + $name = $this->getFieldConstentName($field); + $values = '['; foreach ($array as $k => $v) { $values .= "'{$k}'=>'{$v}',"; @@ -716,7 +740,8 @@ class BuildCurdService [ 'name' => $name, 'values' => $values, - ]); + ] + ); return $selectCode; } @@ -737,7 +762,8 @@ class BuildCurdService 'name' => $name, 'relation' => $relation, 'values' => $filed, - ]); + ] + ); return $selectCode; } @@ -749,14 +775,14 @@ class BuildCurdService */ protected function buildOptionView($field, $select = '') { - $field = CommonTool::lineToHump(ucfirst($field)); - $name = "get{$field}List"; + $name = $this->getFieldVarName($field); $optionCode = CommonTool::replaceTemplate( $this->getTemplate("view{$this->DS}module{$this->DS}option"), [ 'name' => $name, 'select' => $select, - ]); + ] + ); return $optionCode; } @@ -768,15 +794,15 @@ class BuildCurdService */ protected function buildRadioView($field, $select = '') { - $formatField = CommonTool::lineToHump(ucfirst($field)); - $name = "get{$formatField}List"; + $name = $this->getFieldVarName($field); $optionCode = CommonTool::replaceTemplate( $this->getTemplate("view{$this->DS}module{$this->DS}radioInput"), [ 'field' => $field, 'name' => $name, 'select' => $select, - ]); + ] + ); return $optionCode; } @@ -788,15 +814,15 @@ class BuildCurdService */ protected function buildCheckboxView($field, $select = '') { - $formatField = CommonTool::lineToHump(ucfirst($field)); - $name = "get{$formatField}List"; + $name = $this->getFieldVarName($field); $optionCode = CommonTool::replaceTemplate( $this->getTemplate("view{$this->DS}module{$this->DS}checkboxInput"), [ 'field' => $field, 'name' => $name, 'select' => $select, - ]); + ] + ); return $optionCode; } @@ -969,7 +995,6 @@ class BuildCurdService } return $this; - } /** @@ -991,13 +1016,14 @@ class BuildCurdService $this->getTemplate("controller{$this->DS}indexMethod"), [ 'relationIndexMethod' => $relationCode, - ]); + ] + ); } $selectList = ''; foreach ($this->relationArray as $relation) { if (!empty($relation['bindSelectField'])) { $relationArray = explode('\\', $relation['modelFilename']); - $selectList .= $this->buildSelectController(end($relationArray)); + $selectList .= $this->buildRelationSelectController(end($relationArray)); } } foreach ($this->tableColumns as $field => $val) { @@ -1006,7 +1032,7 @@ class BuildCurdService } } - $modelFilenameExtend = str_replace($this->DS,'\\',$this->modelFilename); + $modelFilenameExtend = str_replace($this->DS, '\\', $this->modelFilename); $controllerValue = CommonTool::replaceTemplate( $this->getTemplate("controller{$this->DS}controller"), @@ -1017,7 +1043,8 @@ class BuildCurdService 'modelFilename' => "\app\admin\model\\{$modelFilenameExtend}", 'indexMethod' => $controllerIndexMethod, 'selectList' => $selectList, - ]); + ] + ); $this->fileList[$controllerFile] = $controllerValue; return $this; } @@ -1043,7 +1070,8 @@ class BuildCurdService 'relationModel' => "\app\admin\model\\{$val['modelFilename']}", 'foreignKey' => $val['foreignKey'], 'primaryKey' => $val['primaryKey'], - ]); + ] + ); $relationList .= $relationCode; } } @@ -1076,7 +1104,8 @@ class BuildCurdService 'deleteTime' => $this->delete ? '"delete_time"' : 'false', 'relationList' => $relationList, 'selectList' => $selectList, - ]); + ] + ); $this->fileList[$modelFile] = $modelValue; // 关联模型 @@ -1108,7 +1137,8 @@ class BuildCurdService 'deleteTime' => $val['delete'] ? '"delete_time"' : 'false', 'relationList' => '', 'selectList' => '', - ]); + ] + ); $this->fileList[$relationModelFile] = $relationModelValue; } return $this; @@ -1126,7 +1156,8 @@ class BuildCurdService $this->getTemplate("view{$this->DS}index"), [ 'controllerUrl' => $this->controllerUrl, - ]); + ] + ); $this->fileList[$viewIndexFile] = $viewIndexValue; // 添加页面 @@ -1183,8 +1214,17 @@ class BuildCurdService } } elseif (in_array($field, ['remark']) || $val['formType'] == 'textarea') { $templateFile = "view{$this->DS}module{$this->DS}textarea"; + } elseif ($val['formType'] == 'relation') { + // 使用select生成 + $templateFile = "view{$this->DS}module{$this->DS}select"; + if (isset($val['bindRelation'])) { + $define = $this->buildOptionView($val['bindRelation']); + } elseif (isset($val['define']) && !empty($val['define'])) { + $define = $this->buildOptionView($field); + } } + $addFormList .= CommonTool::replaceTemplate( $this->getTemplate($templateFile), [ @@ -1193,13 +1233,15 @@ class BuildCurdService 'required' => $this->buildRequiredHtml($val['required']), 'value' => $val['default'], 'define' => $define, - ]); + ] + ); } $viewAddValue = CommonTool::replaceTemplate( $this->getTemplate("view{$this->DS}form"), [ 'formList' => $addFormList, - ]); + ] + ); $this->fileList[$viewAddFile] = $viewAddValue; @@ -1269,13 +1311,15 @@ class BuildCurdService 'required' => $this->buildRequiredHtml($val['required']), 'value' => $value, 'define' => $define, - ]); + ] + ); } $viewEditValue = CommonTool::replaceTemplate( $this->getTemplate("view{$this->DS}form"), [ 'formList' => $editFormList, - ]); + ] + ); $this->fileList[$viewEditFile] = $viewEditValue; return $this; @@ -1294,6 +1338,8 @@ class BuildCurdService // 主表字段 foreach ($this->tableColumns as $field => $val) { + $var_name = $this->getFieldVarName($field); + if ($val['formType'] == 'image') { $templateValue = "{field: '{$field}', title: '{$val['comment']}', templet: ea.table.image}"; } elseif ($val['formType'] == 'images') { @@ -1306,15 +1352,13 @@ class BuildCurdService continue; } elseif (in_array($field, $this->switchFields)) { if (isset($val['define']) && !empty($val['define'])) { - $values = json_encode($val['define'], JSON_UNESCAPED_UNICODE); - $templateValue = "{field: '{$field}', search: 'select', selectList: {$values}, title: '{$val['comment']}', templet: ea.table.switch}"; + $templateValue = "{field: '{$field}', search: 'select', selectList: ea.getDataBrage('{$var_name}'), title: '{$val['comment']}', templet: ea.table.switch}"; } else { $templateValue = "{field: '{$field}', title: '{$val['comment']}', templet: ea.table.switch}"; } } elseif (in_array($val['formType'], ['select', 'checkbox', 'radio', 'switch'])) { if (isset($val['define']) && !empty($val['define'])) { - $values = json_encode($val['define'], JSON_UNESCAPED_UNICODE); - $templateValue = "{field: '{$field}', search: 'select', selectList: {$values}, title: '{$val['comment']}'}"; + $templateValue = "{field: '{$field}', search: 'select', selectList: ea.getDataBrage('{$var_name}'), title: '{$val['comment']}'}"; } else { $templateValue = "{field: '{$field}', title: '{$val['comment']}'}"; } @@ -1366,7 +1410,8 @@ class BuildCurdService [ 'controllerUrl' => $this->controllerUrl, 'indexCols' => $indexCols, - ]); + ] + ); $this->fileList[$jsFile] = $jsValue; return $this; } @@ -1464,4 +1509,30 @@ class BuildCurdService return file_get_contents("{$this->dir}{$this->DS}templates{$this->DS}{$name}.code"); } -} \ No newline at end of file + public function getFieldConstentName($field) + { + $field = Str::studly($field); + + $name = "TitleList{$field}"; + + $name = Str::snake($name); + + $name = Str::upper($name); + + return $name; + } + + public function getFieldVarName($field) + { + $field = Str::studly($field); + $name = "TitleList{$field}"; + $name = Str::snake($name); + return $name; + } + public function getFieldMethodName($field) + { + $field = Str::studly($field); + $name = "get{$field}List"; + return $name; + } +} diff --git a/app/admin/service/curd/templates/controller/relationSelect.code b/app/admin/service/curd/templates/controller/relationSelect.code new file mode 100644 index 0000000..ee1f382 --- /dev/null +++ b/app/admin/service/curd/templates/controller/relationSelect.code @@ -0,0 +1,2 @@ + + $this->assign('{{var_name}}', $this->model::{{name}}(), true); diff --git a/app/admin/service/curd/templates/controller/select.code b/app/admin/service/curd/templates/controller/select.code index ad29a0a..ac7ddda 100644 --- a/app/admin/service/curd/templates/controller/select.code +++ b/app/admin/service/curd/templates/controller/select.code @@ -1,2 +1,2 @@ - $this->assign('{{name}}', $this->model->{{name}}()); + $this->assign('{{var_name}}', $this->model::{{name}}, true); diff --git a/app/admin/service/curd/templates/model/model.code b/app/admin/service/curd/templates/model/model.code index 8194111..5e5232c 100644 --- a/app/admin/service/curd/templates/model/model.code +++ b/app/admin/service/curd/templates/model/model.code @@ -11,7 +11,8 @@ class {{modelName}} extends TimeModel protected $deleteTime = {{deleteTime}}; - {{relationList}} {{selectList}} + + {{relationList}} } \ No newline at end of file diff --git a/app/admin/service/curd/templates/model/relationSelect.code b/app/admin/service/curd/templates/model/relationSelect.code index 60a45bf..a973b84 100644 --- a/app/admin/service/curd/templates/model/relationSelect.code +++ b/app/admin/service/curd/templates/model/relationSelect.code @@ -1,5 +1,5 @@ - public function {{name}}() + public static function {{name}}() { return \app\admin\model\{{relation}}::column('{{values}}', 'id'); } \ No newline at end of file diff --git a/app/admin/service/curd/templates/model/select.code b/app/admin/service/curd/templates/model/select.code index 847252e..574ba95 100644 --- a/app/admin/service/curd/templates/model/select.code +++ b/app/admin/service/curd/templates/model/select.code @@ -1,5 +1,2 @@ - public function {{name}}() - { - return {{values}}; - } + public const {{name}} = {{values}}; diff --git a/database/migrations/20220419022952_system_admin.php b/database/migrations/20220419022952_system_admin.php index 8711c60..eb4ce78 100644 --- a/database/migrations/20220419022952_system_admin.php +++ b/database/migrations/20220419022952_system_admin.php @@ -39,7 +39,7 @@ class SystemAdmin extends Migrator ->addColumn(Column::bigInteger('login_num')->setUnsigned()->setDefault(0)->setComment('登录次数')) ->addColumn(Column::integer('sort')->setDefault(0)->setComment('排序')) ->addColumn(Column::tinyInteger('status')->setLimit(1)->setUnsigned()->setDefault(0)->setComment('状态 {radio} (0:禁用,1:启用,)')) - ->addColumn(Column::integer('create_time')->setLimit(11)->setUnsigned()->setDefault(0)) + ->addColumn(Column::integer('create_time')->setLimit(11)->setUnsigned()->setDefault(0)->setComment('创建时间')) ->addColumn(Column::integer('update_time')->setLimit(11)->setUnsigned()->setDefault(0)) ->addColumn(Column::integer('delete_time')->setLimit(11)->setUnsigned()->setDefault(0)) ->addIndex('username') diff --git a/database/migrations/20220419030557_system_auth.php b/database/migrations/20220419030557_system_auth.php index 32aff56..1eee155 100644 --- a/database/migrations/20220419030557_system_auth.php +++ b/database/migrations/20220419030557_system_auth.php @@ -34,7 +34,7 @@ class SystemAuth extends Migrator ->addColumn(Column::integer('sort')->setDefault(0)->setComment('排序')) ->addColumn(Column::tinyInteger('status')->setLimit(1)->setDefault(0)->setComment('状态 {radio} (1:禁用,2:启用)')) ->addColumn(Column::char('remark')->setDefault('')->setComment('备注说明')) - ->addColumn(Column::integer('create_time')->setLimit(11)->setUnsigned()->setDefault(0)) + ->addColumn(Column::integer('create_time')->setLimit(11)->setUnsigned()->setDefault(0)->setComment('创建时间')) ->addColumn(Column::integer('update_time')->setLimit(11)->setUnsigned()->setDefault(0)) ->addColumn(Column::integer('delete_time')->setLimit(11)->setUnsigned()->setDefault(0)) ->addIndex('title') diff --git a/database/migrations/20220419031527_system_config.php b/database/migrations/20220419031527_system_config.php index 04c32ae..3887821 100644 --- a/database/migrations/20220419031527_system_config.php +++ b/database/migrations/20220419031527_system_config.php @@ -35,7 +35,7 @@ class SystemConfig extends Migrator ->addColumn(Column::text('value')->setComment('变量值')) ->addColumn(Column::char('remark', 100)->setDefault('')->setComment('备注信息')) ->addColumn(Column::integer('sort')->setDefault(0)->setComment('排序')) - ->addColumn(Column::integer('create_time')->setLimit(11)->setUnsigned()->setDefault(0)) + ->addColumn(Column::integer('create_time')->setLimit(11)->setUnsigned()->setDefault(0)->setComment('创建时间')) ->addColumn(Column::integer('update_time')->setLimit(11)->setUnsigned()->setDefault(0)) ->addIndex('name') ->addIndex('group') diff --git a/database/migrations/20220419032028_system_menu.php b/database/migrations/20220419032028_system_menu.php index 8f67fe5..bbff353 100644 --- a/database/migrations/20220419032028_system_menu.php +++ b/database/migrations/20220419032028_system_menu.php @@ -37,9 +37,9 @@ class SystemMenu extends Migrator ->addColumn(Column::text('params')->setComment('链接参数')) ->addColumn(Column::char('target', 20)->setDefault('_self')->setComment('链接打开方式')) ->addColumn(Column::integer('sort')->setDefault(0)->setComment('排序')) - ->addColumn(Column::tinyInteger('status')->setLimit(1)->setComment('状态 {radio} (1:禁用,2:启用)')) + ->addColumn(Column::tinyInteger('status')->setLimit(1)->setDefault(1)->setComment('状态 {radio} (0:禁用,1:启用)')) ->addColumn(Column::char('remark')->setDefault('')->setComment('备注说明')) - ->addColumn(Column::integer('create_time')->setLimit(11)->setUnsigned()->setDefault(0)) + ->addColumn(Column::integer('create_time')->setLimit(11)->setUnsigned()->setDefault(0)->setComment('创建时间')) ->addColumn(Column::integer('update_time')->setLimit(11)->setUnsigned()->setDefault(0)) ->addColumn(Column::integer('delete_time')->setLimit(11)->setUnsigned()->setDefault(0)) ->addIndex('title') diff --git a/database/migrations/20220419032642_system_node.php b/database/migrations/20220419032642_system_node.php index 5d31bd2..3603c17 100644 --- a/database/migrations/20220419032642_system_node.php +++ b/database/migrations/20220419032642_system_node.php @@ -34,7 +34,7 @@ class SystemNode extends Migrator ->addColumn(Column::char('title')->setDefault('')->setComment('节点标题')) ->addColumn(Column::tinyInteger('type')->setUnsigned()->setLimit(1)->setComment('节点类型(1:控制器,2:节点)')) ->addColumn(Column::tinyInteger('is_auth')->setUnsigned()->setLimit(1)->setDefault(1)->setComment('是否启动RBAC权限控制')) - ->addColumn(Column::integer('create_time')->setLimit(11)->setUnsigned()->setDefault(0)) + ->addColumn(Column::integer('create_time')->setLimit(11)->setUnsigned()->setDefault(0)->setComment('创建时间')) ->addColumn(Column::integer('update_time')->setLimit(11)->setUnsigned()->setDefault(0)) ->addIndex('node') ->create(); diff --git a/database/migrations/20220419033507_system_quick.php b/database/migrations/20220419033507_system_quick.php index bbae2be..c2d9bf9 100644 --- a/database/migrations/20220419033507_system_quick.php +++ b/database/migrations/20220419033507_system_quick.php @@ -36,7 +36,7 @@ class SystemQuick extends Migrator ->addColumn(Column::integer('sort')->setDefault(0)->setComment('排序')) ->addColumn(Column::tinyInteger('status')->setLimit(1)->setUnsigned()->setComment('状态 {radio} (1:禁用,2:启用)')) ->addColumn(Column::char('remark')->setDefault('')->setComment('备注说明')) - ->addColumn(Column::integer('create_time')->setLimit(11)->setUnsigned()->setDefault(0)) + ->addColumn(Column::integer('create_time')->setLimit(11)->setUnsigned()->setDefault(0)->setComment('创建时间')) ->addColumn(Column::integer('update_time')->setLimit(11)->setUnsigned()->setDefault(0)) ->addColumn(Column::integer('delete_time')->setLimit(11)->setUnsigned()->setDefault(0)) ->create(); diff --git a/database/migrations/20220419034810_system_uploadfile.php b/database/migrations/20220419034810_system_uploadfile.php index 5b0ed0f..1085f6b 100644 --- a/database/migrations/20220419034810_system_uploadfile.php +++ b/database/migrations/20220419034810_system_uploadfile.php @@ -40,7 +40,7 @@ class SystemUploadfile extends Migrator ->addColumn(Column::integer('file_size')->setUnsigned()->setDefault(0)->setComment('文件大小')) ->addColumn(Column::char('file_ext', 100)->setDefault('')->setComment('扩展名')) ->addColumn(Column::char('sha1', 40)->setDefault('')->setComment('文件 sha1编码')) - ->addColumn(Column::integer('create_time')->setLimit(11)->setUnsigned()->setDefault(0)) + ->addColumn(Column::integer('create_time')->setLimit(11)->setUnsigned()->setDefault(0)->setComment('创建时间')) ->addColumn(Column::integer('update_time')->setLimit(11)->setUnsigned()->setDefault(0)) ->addColumn(Column::integer('delete_time')->setLimit(11)->setUnsigned()->setDefault(0)) ->addIndex('upload_type') diff --git a/database/migrations/20220419102635_mall_cate.php b/database/migrations/20220419102635_mall_cate.php index fad3157..db18d89 100644 --- a/database/migrations/20220419102635_mall_cate.php +++ b/database/migrations/20220419102635_mall_cate.php @@ -35,7 +35,7 @@ class MallCate extends Migrator ->addColumn(Column::integer('sort')->setDefault(0)->setComment('排序')) ->addColumn(Column::tinyInteger('status')->setLimit(1)->setDefault(2)->setComment('状态 {radio} (1:禁用,2:启用)')) ->addColumn(Column::char('remark')->setDefault('')->setComment('备注说明')) - ->addColumn(Column::integer('create_time')->setLimit(11)->setUnsigned()->setDefault(0)) + ->addColumn(Column::integer('create_time')->setLimit(11)->setUnsigned()->setDefault(0)->setComment('创建时间')) ->addColumn(Column::integer('update_time')->setLimit(11)->setUnsigned()->setDefault(0)) ->addColumn(Column::integer('delete_time')->setLimit(11)->setUnsigned()->setDefault(0)) ->addIndex('title') diff --git a/database/migrations/20220419102916_mall_goods.php b/database/migrations/20220419102916_mall_goods.php index 1cac12b..2940aef 100644 --- a/database/migrations/20220419102916_mall_goods.php +++ b/database/migrations/20220419102916_mall_goods.php @@ -44,7 +44,7 @@ class MallGoods extends Migrator ->addColumn(Column::integer('sort')->setUnsigned()->setDefault(0)->setComment('排序')) ->addColumn(Column::tinyInteger('status')->setUnsigned()->setLimit(1)->setDefault(0)->setComment('状态 {radio} (0:正常,1:禁用)')) ->addColumn(Column::char('remark')->setDefault('')->setComment('备注说明')) - ->addColumn(Column::integer('create_time')->setLimit(11)->setUnsigned()->setDefault(0)) + ->addColumn(Column::integer('create_time')->setLimit(11)->setUnsigned()->setDefault(0)->setComment('创建时间')) ->addColumn(Column::integer('update_time')->setLimit(11)->setUnsigned()->setDefault(0)) ->addColumn(Column::integer('delete_time')->setLimit(11)->setUnsigned()->setDefault(0)) ->addIndex('cate_id')