EventController.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Event;
  4. use App\News;
  5. use Illuminate\Http\Request;
  6. use File;
  7. class EventController extends Controller
  8. {
  9. protected $rules = [
  10. 'title' => ['required']
  11. ];
  12. public function index()
  13. {
  14. if (\Illuminate\Support\Facades\Auth::user()->level == 1)
  15. return redirect('/admin/dashboard');
  16. $events = Event::orderBy('title')->get(); //->paginate(50);
  17. return view('events.index',compact('events'))
  18. ->with('i', (request()->input('event', 1) - 1) * 5);
  19. }
  20. /**
  21. * Show the form for creating a new resource.
  22. *
  23. * @return \Illuminate\Http\Response
  24. */
  25. public function create()
  26. {
  27. return view('events.create');
  28. }
  29. /**
  30. * Store a newly created resource in storage.
  31. *
  32. * @param \Illuminate\Http\Request $request
  33. * @return \Illuminate\Http\Response
  34. */
  35. public function store(Request $request)
  36. {
  37. $request->validate($this->rules);
  38. $input = $request->all();
  39. $input["online"] = true; //isset($input["online"]) ? ($input["online"] == 'on' ? true : false) : false;
  40. if(request()->image)
  41. {
  42. $file = request()->image;
  43. $filename = time() . '_' . $file->getClientOriginalName();
  44. if (! File::exists(public_path()."/files/events"))
  45. File::makeDirectory(public_path()."/files/events");
  46. $path = public_path('files/events');
  47. request()->image->move($path, $filename);
  48. $input["image"] = $filename;
  49. }
  50. Event::create($input);
  51. return redirect()->route('events.index')
  52. ->with('success','Event created successfully.');
  53. }
  54. /**
  55. * Display the specified resource.
  56. *
  57. * @param \App\Event $event
  58. * @return \Illuminate\Http\Response
  59. */
  60. public function show(Event $event)
  61. {
  62. return view('events.show',compact('event'));
  63. }
  64. /**
  65. * Show the form for editing the specified resource.
  66. *
  67. * @param \App\Event $event
  68. * @return \Illuminate\Http\Response
  69. */
  70. public function edit(Event $event)
  71. {
  72. return view('events.edit',compact('event'));
  73. }
  74. /**
  75. * Update the specified resource in storage.
  76. *
  77. * @param \Illuminate\Http\Request $request
  78. * @param \App\Event $event
  79. * @return \Illuminate\Http\Response
  80. */
  81. public function update(Request $request, Event $event)
  82. {
  83. $request->validate($this->rules);
  84. $input = $request->all();
  85. $input["online"] = isset($input["online"]) ? ($input["online"] == 'on' ? true : false) : false;
  86. if(request()->image)
  87. {
  88. $file = request()->image;
  89. $filename = time() . '_' . $file->getClientOriginalName();
  90. if (! File::exists(public_path()."/files/events"))
  91. File::makeDirectory(public_path()."/files/events");
  92. $path = public_path('files/events');
  93. request()->image->move($path, $filename);
  94. $input["image"] = $filename;
  95. }
  96. $event->update($input);
  97. return redirect()->route('events.index')
  98. ->with('success','Event updated successfully');
  99. }
  100. /**
  101. * Remove the specified resource from storage.
  102. *
  103. * @param \App\Event $event
  104. * @return \Illuminate\Http\Response
  105. */
  106. public function destroy(Event $event)
  107. {
  108. $event->advs()->delete();
  109. $news = News::where('event_id', '=', $event->id)->get();
  110. foreach($news as $n)
  111. {
  112. $n->event_id = null;
  113. $n->save();
  114. }
  115. $event->delete();
  116. return redirect()->route('events.index')
  117. ->with('success','Event deleted successfully');
  118. }
  119. }