20211226001641_pluginCurdTable.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <?php
  2. use think\migration\Migrator;
  3. use think\facade\Config;
  4. class PluginCurdTable extends Migrator
  5. {
  6. public function change()
  7. {
  8. $table = $this->table('plugin_curd_table', [
  9. 'engine' => 'InnoDB',
  10. 'comment' => '自动生成curd数据表管理',
  11. 'collation' => 'utf8mb4_general_ci',
  12. ]);
  13. //删除表
  14. if ($table->exists()) {
  15. $table->drop();
  16. }
  17. $table
  18. ->addColumn('table', 'string', ['limit' => 255, 'default' => '', 'comment' => '表名'])
  19. ->addColumn('comment', 'text', ['comment' => '表注释'])
  20. ->addColumn('engine', 'text', ['comment' => '存储引擎'])
  21. ->addColumn('collation', 'string', ['limit' => 255, 'default' => '', 'comment' => '字符集(排序规则)'])
  22. ->addColumn('is_hide_pk', 'boolean', ['limit' => 4, 'default' => '0', 'comment' => '是否隐藏主键列.2=不隐藏,1=隐藏'])
  23. ->addColumn('is_create_number', 'boolean', ['limit' => 4, 'default' => '0', 'comment' => '是否生成序号列.2=不生成,1=生成'])
  24. ->addColumn('has_create_table', 'boolean', ['limit' => 4, 'default' => '0', 'comment' => '是否已经生成表结构.0=未生成,1=已生成'])
  25. ->addColumn('has_create_menu', 'boolean', ['limit' => 4, 'default' => '0', 'comment' => '是否已经生成菜单.0=未生成,1=已生成'])
  26. ->addColumn('create_type', 'boolean', ['limit' => 4, 'default' => '0', 'comment' => '生成类型.1=常规CURD,2=分类CURD'])
  27. ->addColumn('create_addition', 'text', ['null' => 1, 'comment' => '生成附加属性.只有分类CURD才会有值.存储一个json.格式:{"parent_field":"父级字段","name_field":"分类名字段","order_field":"排序字段","order_type":"排序方式,ASC或者DESC"}'])
  28. ->addColumn('create_time', 'datetime', ['null' => 1, 'comment' => '创建时间'])
  29. ->addColumn('update_time', 'datetime', ['null' => 1, 'comment' => '更新时间'])
  30. ->addColumn('delete_time', 'datetime', ['null' => 1, 'comment' => '删除时间'])
  31. ;
  32. $data = [
  33. [
  34. 'table' => Config::get("database.connections." . Config::get("database.default") . ".prefix") . 'area',
  35. 'comment' => '地区管理',
  36. 'engine' => 'InnoDB',
  37. 'collation' => 'utf8mb4_general_ci',
  38. 'is_hide_pk' => 2,
  39. 'is_create_number' => 2,
  40. 'has_create_table' => 1,
  41. 'has_create_menu' => 1,
  42. 'create_type' => 2,
  43. 'create_addition' => '{"parent_field":"pid","id_order_type":"ASC","order_field":"sort","order_type":"DESC"}',
  44. 'create_time' => date('Y-m-d H:i:s'),
  45. 'update_time' => date('Y-m-d H:i:s'),
  46. ],
  47. [
  48. 'table' => Config::get("database.connections." . Config::get("database.default") . ".prefix") . 'member',
  49. 'comment' => '会员管理',
  50. 'engine' => 'InnoDB',
  51. 'collation' => 'utf8mb4_general_ci',
  52. 'is_hide_pk' => 2,
  53. 'is_create_number' => 2,
  54. 'has_create_table' => 1,
  55. 'has_create_menu' => 1,
  56. 'create_type' => 1,
  57. 'create_addition' => '',
  58. 'create_time' => date('Y-m-d H:i:s'),
  59. 'update_time' => date('Y-m-d H:i:s'),
  60. ],
  61. [
  62. 'table' => Config::get("database.connections." . Config::get("database.default") . ".prefix") . 'admin_user',
  63. 'comment' => '后台管理员',
  64. 'engine' => 'InnoDB',
  65. 'collation' => 'utf8mb4_general_ci',
  66. 'is_hide_pk' => 2,
  67. 'is_create_number' => 2,
  68. 'has_create_table' => 1,
  69. 'has_create_menu' => 1,
  70. 'create_type' => 1,
  71. 'create_addition' => '',
  72. 'create_time' => date('Y-m-d H:i:s'),
  73. 'update_time' => date('Y-m-d H:i:s'),
  74. ],
  75. [
  76. 'table' => Config::get("database.connections." . Config::get("database.default") . ".prefix") . 'test_category',
  77. 'comment' => '官方举例,生成分类CURD',
  78. 'engine' => 'InnoDB',
  79. 'collation' => 'utf8mb4_general_ci',
  80. 'is_hide_pk' => 2,
  81. 'is_create_number' => 2,
  82. 'has_create_table' => 1,
  83. 'has_create_menu' => 1,
  84. 'create_type' => 2,
  85. 'create_addition' => '{"parent_field":"pid","id_order_type":"ASC","order_field":"sort","order_type":"DESC"}',
  86. 'create_time' => date('Y-m-d H:i:s'),
  87. 'update_time' => date('Y-m-d H:i:s'),
  88. ],
  89. [
  90. 'table' => Config::get("database.connections." . Config::get("database.default") . ".prefix") . 'test',
  91. 'comment' => '官方举例,生成常规CURD',
  92. 'engine' => 'InnoDB',
  93. 'collation' => 'utf8mb4_general_ci',
  94. 'is_hide_pk' => 2,
  95. 'is_create_number' => 2,
  96. 'has_create_table' => 1,
  97. 'has_create_menu' => 1,
  98. 'create_type' => 1,
  99. 'create_addition' => '{"parent_field":"","id_order_type":"ASC","order_field":"","order_type":"DESC"}',
  100. 'create_time' => date('Y-m-d H:i:s'),
  101. 'update_time' => date('Y-m-d H:i:s'),
  102. ],
  103. ];
  104. $table->setData($data)->create();
  105. }
  106. }