CommonController.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: 陈武杰
  5. * Date: 2021/1/24
  6. * Time: 14:31
  7. */
  8. namespace App\Http\Controllers\Admin;
  9. class CommonController
  10. {
  11. public function doc()
  12. {
  13. $database = env('DB_DATABASE');
  14. $prefix = '';
  15. $exclude_tables = "'admin_access','admin_menus','admin_operate_logs','admin_roles','admin_user_resets','admin_users'
  16. ,'base_area','base_attachments','base_dictionary'
  17. ,'oauth_access_tokens','oauth_auth_codes','oauth_clients','oauth_personal_access_clients','oauth_refresh_tokens'
  18. ,'migrations','cache'
  19. ";
  20. $sql = "select TABLE_NAME name,TABLE_COMMENT comment from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA='".$database."' and TABLE_NAME not in (".$exclude_tables.")";
  21. $tables = \DB::select($sql);
  22. $map1 = $map2 = [];
  23. $i = round(count($tables)/2);
  24. foreach ($tables as $k => $v) {
  25. $name = str_replace($prefix, '', $v->name);
  26. if ($k >= $i) {
  27. $map1[$v->name] = $name.'('.$v->comment.')';
  28. }
  29. else {
  30. $map2[$v->name] = $name.'('.$v->comment.')';
  31. }
  32. }
  33. $data1 = [];
  34. foreach ($map1 as $k => $v){
  35. $sql = "select COLUMN_NAME name, DATA_TYPE type, COLUMN_COMMENT comment from INFORMATION_SCHEMA.COLUMNS where table_schema = '".$database."' AND table_name = '".$k."'";
  36. $comment = \DB::select($sql);
  37. $data1[$v] = $comment;
  38. }
  39. $data2 = [];
  40. foreach ($map2 as $k => $v){
  41. $sql = "select COLUMN_NAME name, DATA_TYPE type, COLUMN_COMMENT comment from INFORMATION_SCHEMA.COLUMNS where table_schema = '".$database."' AND table_name = '".$k."'";
  42. $comment = \DB::select($sql);
  43. $data2[$v] = $comment;
  44. }
  45. return view('doc', ['data1' => $data1, 'data2' => $data2]);
  46. }
  47. }