AdminMediaController.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use DB, Cache;
  4. use App\{
  5. Media,
  6. MediaBlocklist,
  7. Profile,
  8. Status
  9. };
  10. use Carbon\Carbon;
  11. use Illuminate\Http\Request;
  12. use Illuminate\Validation\Rule;
  13. trait AdminMediaController
  14. {
  15. public function media(Request $request)
  16. {
  17. $this->validate($request, [
  18. 'layout' => [
  19. 'nullable',
  20. 'string',
  21. 'min:1',
  22. 'max:13',
  23. Rule::in(['grid','list', 'banned', 'addbanned'])
  24. ],
  25. 'search' => 'nullable|string|min:1|max:20'
  26. ]);
  27. if($request->filled('search')) {
  28. $profiles = Profile::where('username', 'like', '%'.$request->input('search').'%')->pluck('id')->toArray();
  29. $media = Media::whereHas('status')
  30. ->with('status')
  31. ->orderby('id', 'desc')
  32. ->whereIn('profile_id', $profiles)
  33. ->orWhere('mime', $request->input('search'))
  34. ->paginate(12);
  35. return view('admin.media.home', compact('media'));
  36. }
  37. if($request->input('layout') == 'banned') {
  38. $media = MediaBlocklist::latest()->paginate(12);
  39. return view('admin.media.home', compact('media'));
  40. }
  41. $media = Media::whereHas('status')->with('status')->orderby('id', 'desc')->paginate(12);
  42. return view('admin.media.home', compact('media'));
  43. }
  44. public function mediaShow(Request $request, $id)
  45. {
  46. $media = Media::findOrFail($id);
  47. return view('admin.media.show', compact('media'));
  48. }
  49. }