Curd.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <?php
  2. namespace plugin\curd\controller;
  3. use laytp\controller\Backend;
  4. use plugin\curd\library\Menu;
  5. use plugin\curd\model\curd\Field;
  6. use plugin\curd\model\curd\Table;
  7. use think\facade\Config;
  8. class Curd extends Backend
  9. {
  10. protected $noNeedAuth = ['getFieldList'];
  11. protected $orderRule = ['show_sort' => 'desc', 'id' => 'asc'];//排序规则
  12. public function getTableList()
  13. {
  14. $tables = Table::field('id,`table` as title')->order('id', 'desc')->select()->toArray();
  15. return $this->success('数据获取成功', $tables);
  16. }
  17. //获取字段列表
  18. public function getFieldList()
  19. {
  20. if ($table = $this->request->param('table')) {
  21. $where = $this->buildSearchParams();
  22. $tableId = Table::where('table', '=', $table)->value('id');
  23. $where[] = ['table_id', '=', $tableId];
  24. $order = $this->buildOrder();
  25. $sourceData = Field::where($where)->order($order);
  26. $paging = $this->request->param('paging', false);
  27. if ($paging) {
  28. $limit = $this->request->param('limit', Config::get('paginate.limit'));
  29. $data = $sourceData->paginate($limit)->toArray();
  30. $data['data'] = $this->getSelectedData($data['data']);
  31. }else{
  32. $data = $sourceData->select()->toArray();
  33. }
  34. return $this->success('数据获取成功', $data);
  35. } else {
  36. return $this->success('数据获取失败');
  37. }
  38. }
  39. //生成常规CURD
  40. public function createNormalCurd()
  41. {
  42. $tableId = $this->request->post('table_id');
  43. $createTable = $this->request->post('create_table', 0);
  44. $createMenu = $this->request->post('create_menu', 0);
  45. $menuId = $this->request->post('menu_id', 0);
  46. $save = [];
  47. $curd = new \plugin\curd\library\Curd($tableId, $createTable);
  48. if ($curd->execute()) {
  49. if ($createMenu) {
  50. $menu = new Menu();
  51. $menu->create($tableId, $menuId);
  52. $save['has_create_menu'] = 1;
  53. }
  54. if ($createTable) {
  55. $save['has_create_table'] = 1;
  56. }
  57. $save['create_type'] = 1;
  58. $save['create_addition'] = json_encode([]);
  59. Table::where('id', '=', $tableId)->save($save);
  60. return $this->success('生成成功');
  61. } else {
  62. return $this->error($curd->getError());
  63. }
  64. }
  65. //生成分类CURD
  66. public function createCategoryCurd()
  67. {
  68. $tableId = $this->request->post('table_id');
  69. $createTable = $this->request->post('create_table', 0);
  70. $createMenu = $this->request->post('create_menu', 0);
  71. $menuId = $this->request->post('menu_id', 0);
  72. $parentField = $this->request->post('parent_field', 0);
  73. $idOrderType = $this->request->post('id_order_type', 0);
  74. $orderField = $this->request->post('order_field', 0);
  75. $orderType = $this->request->post('order_type', 0);
  76. $save['create_addition'] = json_encode([
  77. 'parent_field' => $parentField,
  78. 'id_order_type' => $idOrderType,
  79. 'order_field' => $orderField,
  80. 'order_type' => $orderType,
  81. ], JSON_UNESCAPED_UNICODE);
  82. if ($createMenu) {
  83. $menu = new Menu();
  84. $menu->create($tableId, $menuId);
  85. $save['has_create_menu'] = 1;
  86. }
  87. if ($createTable) {
  88. $save['has_create_table'] = 1;
  89. }
  90. $curdCategory = new \plugin\curd\library\CurdCategory($tableId, $createTable, $save);
  91. if ($curdCategory->execute()) {
  92. $save['create_type'] = 2;
  93. $save['create_addition'] = isset($save['create_addition']) ? $save['create_addition'] : json_encode([]);
  94. Table::where('id', '=', $tableId)->save($save);
  95. return $this->success('生成成功');
  96. } else {
  97. return $this->error($curdCategory->getError());
  98. }
  99. }
  100. }