ItemsAdminController.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Http\Controllers\Controller;
  4. use App\Models\Item;
  5. use App\Models\Role;
  6. use App\User;
  7. use Illuminate\Http\Request;
  8. use Illuminate\Support\Facades\DB;
  9. use Illuminate\Support\Facades\Gate;
  10. class ItemsAdminController extends Controller
  11. {
  12. public function index()
  13. {
  14. if (Gate::denies('is-admin')) {
  15. return redirect()->route('home')->with(['errors' => 'У вас не достаточно полномочий']);
  16. }
  17. $items = DB::table('items')
  18. ->join('categories', 'items.category_id', '=', 'categories.id')
  19. ->join('subcategories', 'items.subcategory_id', '=', 'subcategories.id')
  20. ->select('items.id',
  21. 'items.user_id as user',
  22. 'items.caption',
  23. 'items.description',
  24. 'categories.title as category',
  25. 'subcategories.title as subcategory',
  26. 'items.created_at'
  27. )
  28. ->paginate(15);
  29. if ($items->total() > 0) {
  30. $colNames = [];
  31. foreach ($items->first() as $key => $value) {
  32. $colNames[] = $key;
  33. }
  34. $items->title = 'Список предметов';
  35. $items->colNames = $colNames;
  36. }
  37. return view('admin.items', ['items' => $items ?? collect()]);
  38. }
  39. public function ajaxItemsRequest(Request $request)
  40. {
  41. $content = json_decode($request->getContent());
  42. if ($content->item) {
  43. $data = collect([]);
  44. $data->item = Item::find((int)$content->item);
  45. $data->item->colNames = $data->item->getAttributes();
  46. $data->categories = DB::table('categories')->get();
  47. $data->subcategories = DB::table('subcategories')->get();
  48. $data->pictures = $data->item->getPictures();
  49. return view('templates.modal_form', ['data' => $data]);
  50. }
  51. return null;
  52. }
  53. public function ajaxUsersRequest(Request $request)
  54. {
  55. $content = json_decode($request->getContent());
  56. if ($content->user) {
  57. $data = collect([]);
  58. $data->user = User::find((int)$content->user);
  59. $data->roles = Role::all();
  60. return view('templates.modal_form', ['data' => $data]);
  61. }
  62. return null;
  63. }
  64. }