SystemMediaCategoryController.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Filters\SystemMediaFilter;
  4. use App\Http\Requests\SystemMediaCategoryRequest;
  5. use App\Http\Requests\SystemMediaRequest;
  6. use App\Http\Resources\SystemMediaResource;
  7. use App\Models\SystemMediaCategory;
  8. use Illuminate\Http\Request;
  9. class SystemMediaCategoryController extends AdminBaseController
  10. {
  11. public function store(SystemMediaCategoryRequest $request)
  12. {
  13. $inputs = $request->validated();
  14. $cate = SystemMediaCategory::create($inputs);
  15. return $this->created($cate);
  16. }
  17. public function update(SystemMediaCategoryRequest $request, SystemMediaCategory $systemMediaCategory)
  18. {
  19. $inputs = $request->validated();
  20. $systemMediaCategory->update($inputs);
  21. return $this->created($systemMediaCategory);
  22. }
  23. public function edit(SystemMediaCategory $systemMediaCategory)
  24. {
  25. return $this->ok($systemMediaCategory);
  26. }
  27. public function destroy(SystemMediaCategory $systemMediaCategory)
  28. {
  29. $systemMediaCategory->delete();
  30. return $this->noContent();
  31. }
  32. public function index(Request $request, SystemMediaCategory $model)
  33. {
  34. return $this->ok($model->treeExcept((int) $request->input('except'))->toTree());
  35. }
  36. /**
  37. * 上传文件到指定分类下
  38. *
  39. * @param SystemMediaRequest $request
  40. * @param SystemMediaCategory $systemMediaCategory
  41. *
  42. * @return \Illuminate\Http\JsonResponse
  43. */
  44. public function storeSystemMedia(SystemMediaRequest $request, SystemMediaCategory $systemMediaCategory)
  45. {
  46. $files = $this->saveFiles($request);
  47. $media = $systemMediaCategory->media()->create($files['file']);
  48. return $this->created(SystemMediaResource::make($media));
  49. }
  50. /**
  51. * 获取分类下的所有文件
  52. *
  53. * @param SystemMediaCategory $systemMediaCategory
  54. * @param SystemMediaFilter $filter
  55. *
  56. * @return \Illuminate\Http\JsonResponse
  57. */
  58. public function systemMediaIndex(SystemMediaCategory $systemMediaCategory, SystemMediaFilter $filter)
  59. {
  60. $media = $systemMediaCategory->media()
  61. ->filter($filter)
  62. ->orderByDesc('id')
  63. ->paginate();
  64. return $this->ok(SystemMediaResource::collection($media));
  65. }
  66. }