mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-07-01 15:32:48 +08:00
完善数据库安装创建时间备注;完善curd自动生成新规则;
This commit is contained in:
@@ -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");
|
||||
}
|
||||
|
||||
}
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
|
||||
$this->assign('{{var_name}}', $this->model::{{name}}(), true);
|
||||
@@ -1,2 +1,2 @@
|
||||
|
||||
$this->assign('{{name}}', $this->model->{{name}}());
|
||||
$this->assign('{{var_name}}', $this->model::{{name}}, true);
|
||||
|
||||
@@ -11,7 +11,8 @@ class {{modelName}} extends TimeModel
|
||||
|
||||
protected $deleteTime = {{deleteTime}};
|
||||
|
||||
{{relationList}}
|
||||
{{selectList}}
|
||||
|
||||
{{relationList}}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
|
||||
public function {{name}}()
|
||||
public static function {{name}}()
|
||||
{
|
||||
return \app\admin\model\{{relation}}::column('{{values}}', 'id');
|
||||
}
|
||||
@@ -1,5 +1,2 @@
|
||||
|
||||
public function {{name}}()
|
||||
{
|
||||
return {{values}};
|
||||
}
|
||||
public const {{name}} = {{values}};
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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')
|
||||
|
||||
Reference in New Issue
Block a user