AdvertController.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Models\Advert;
  4. use App\Models\Position;
  5. use Illuminate\Http\Request;
  6. use App\Http\Controllers\Controller;
  7. class AdvertController extends Controller
  8. {
  9. /**
  10. * Display a listing of the resource.
  11. *
  12. * @return \Illuminate\Http\Response
  13. */
  14. public function index()
  15. {
  16. $positions = Position::get();
  17. return view('admin.advert.index',compact('positions'));
  18. }
  19. public function data(Request $request)
  20. {
  21. $model = Advert::query();
  22. if ($request->get('position_id')){
  23. $model = $model->where('position_id',$request->get('position_id'));
  24. }
  25. if ($request->get('title')){
  26. $model = $model->where('title','like','%'.$request->get('title').'%');
  27. }
  28. $res = $model->orderBy('sort','desc')->orderBy('id','desc')->with('position')->paginate($request->get('limit',30))->toArray();
  29. $data = [
  30. 'code' => 0,
  31. 'msg' => '正在请求中...',
  32. 'count' => $res['total'],
  33. 'data' => $res['data']
  34. ];
  35. return response()->json($data);
  36. }
  37. /**
  38. * Show the form for creating a new resource.
  39. *
  40. * @return \Illuminate\Http\Response
  41. */
  42. public function create()
  43. {
  44. //所有广告位置
  45. $positions = Position::orderBy('sort','desc')->get();
  46. return view('admin.advert.create',compact('positions'));
  47. }
  48. /**
  49. * Store a newly created resource in storage.
  50. *
  51. * @param \Illuminate\Http\Request $request
  52. * @return \Illuminate\Http\Response
  53. */
  54. public function store(Request $request)
  55. {
  56. $this->validate($request,[
  57. 'title' => 'required|string',
  58. 'sort' => 'required|numeric',
  59. 'thumb' => 'required|string',
  60. 'position_id' => 'required|numeric'
  61. ]);
  62. if (Advert::create($request->all())){
  63. return redirect(route('admin.advert'))->with(['status'=>'添加完成']);
  64. }
  65. return redirect(route('admin.advert'))->with(['status'=>'系统错误']);
  66. }
  67. /**
  68. * Display the specified resource.
  69. *
  70. * @param int $id
  71. * @return \Illuminate\Http\Response
  72. */
  73. public function show($id)
  74. {
  75. //
  76. }
  77. /**
  78. * Show the form for editing the specified resource.
  79. *
  80. * @param int $id
  81. * @return \Illuminate\Http\Response
  82. */
  83. public function edit($id)
  84. {
  85. $advert = Advert::findOrFail($id);
  86. //所有广告位置
  87. $positions = Position::orderBy('sort','desc')->get();
  88. foreach ($positions as $position){
  89. $position->selected = $position->id == $advert->position_id ? 'selected' : '';
  90. }
  91. return view('admin.advert.edit',compact('positions','advert'));
  92. }
  93. /**
  94. * Update the specified resource in storage.
  95. *
  96. * @param \Illuminate\Http\Request $request
  97. * @param int $id
  98. * @return \Illuminate\Http\Response
  99. */
  100. public function update(Request $request, $id)
  101. {
  102. $this->validate($request,[
  103. 'title' => 'required|string',
  104. 'sort' => 'required|numeric',
  105. 'thumb' => 'required|string',
  106. 'position_id' => 'required|numeric'
  107. ]);
  108. $advert = Advert::findOrFail($id);
  109. if ($advert->update($request->all())){
  110. return redirect(route('admin.advert'))->with(['status'=>'更新成功']);
  111. }
  112. return redirect(route('admin.advert'))->withErrors(['status'=>'系统错误']);
  113. }
  114. /**
  115. * Remove the specified resource from storage.
  116. *
  117. * @param int $id
  118. * @return \Illuminate\Http\Response
  119. */
  120. public function destroy(Request $request)
  121. {
  122. $ids = $request->get('ids');
  123. if (empty($ids)){
  124. return response()->json(['code'=>1,'msg'=>'请选择删除项']);
  125. }
  126. if (Advert::destroy($ids)){
  127. return response()->json(['code'=>0,'msg'=>'删除成功']);
  128. }
  129. return response()->json(['code'=>1,'msg'=>'删除失败']);
  130. }
  131. }