SqlController.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Model\Data;
  4. use App\Model\User;
  5. use Illuminate\Http\Request;
  6. use App\Http\Requests;
  7. use App\Http\Controllers\Controller;
  8. use Illuminate\Support\Facades\DB;
  9. use Maatwebsite\Excel\Facades\Excel;
  10. class SqlController extends CommonController
  11. {
  12. public function index()
  13. {
  14. $data = Data::all();
  15. return view('admin.sql.index',compact('data'));
  16. }
  17. public function backups(Request $request)
  18. {
  19. //生成备份文件夹
  20. $excle_path = date('YmdHis');
  21. //数据库所有表
  22. $tables = DB::select('SHOW TABLES');
  23. $tables = json_decode( json_encode( $tables),true);
  24. $table_name = array();
  25. foreach($tables as $k => $v){
  26. $table_name[] = $v['Tables_in_zcju'];
  27. }
  28. //循环查表导出为excle文件
  29. foreach($table_name as $value){
  30. $data = DB::table($value)->get();
  31. $data = json_decode( json_encode( $data),true);
  32. Excel::create($value,function($excle) use ($data){
  33. $excle->sheet('score',function($sheet) use ($data){
  34. $sheet->rows($data);
  35. });
  36. })->store('xls',storage_path('databases/'.$excle_path.'_'.$request->all()['name']));
  37. }
  38. $this->mkFolder(storage_path('databases/'));
  39. //存datas表
  40. $input = $request->all();
  41. $input['path'] = $excle_path.'_'.$input['name'] ;
  42. if(Data::create($input)){
  43. return redirect('/sql');
  44. }
  45. return 1;
  46. }
  47. public function recovery($id)
  48. {
  49. }
  50. public function download($id)
  51. {
  52. }
  53. // 修改文件夹权限
  54. protected static function mkFolder($path)
  55. {
  56. if (!is_readable($path)) {
  57. mkdir($path, 0777, true);
  58. }
  59. }
  60. }