Advertisement
Guest User

Untitled

a guest
Mar 27th, 2017
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.44 KB | None | 0 0
  1. public function results(Request $request){
  2.  
  3. $courses = Course::select(['*'])->where('status', '!=', 'draft');
  4. // if only parent category
  5. if($request->has('category_parent') AND !$request->has('category_child'))
  6. {
  7. $parent_category[] = (integer) $request->get('category_parent');
  8. $child_categories = Category::where('parent_id', $request->get('category_parent'))->lists('id')->toArray();
  9. $all_categories = array_merge($parent_category, $child_categories);
  10. $courses = $courses->whereHas('categories', function ($query) use ($all_categories) {
  11. $query->where(function ($query) use ($all_categories) {
  12. foreach ($all_categories as $category) $query->orWhere('category_id', '=', $category);
  13. });
  14. });
  15.  
  16. // else with child category
  17. } elseif($request->has('category_parent') AND $request->has('category_child')) {
  18. $courses = $courses->where('status','!=', 'draft')->whereHas('categories', function ($query) use ($request) {
  19. $query->where('category_id', '=', $request->get('category_child'));
  20. });
  21. }
  22.  
  23. if($request->has('course_week')) {
  24. $courses = $courses->where('status','!=', 'draft')->where('course_weeks', $request->get('course_week'));
  25. }
  26.  
  27. // if set start date
  28. if($request->has('start_date')) {
  29. $start_date_begin = substr($request->get('start_date'), 0, 10);
  30. $start_date_finish = substr($request->get('start_date'), -10);
  31. if(preg_match("/^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/", $start_date_begin) AND preg_match("/^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/", $start_date_finish)) {
  32. $carbon_begin = Carbon::createFromFormat('d/m/Y', $start_date_begin);
  33. $carbon_finish = Carbon::createFromFormat('d/m/Y', $start_date_finish);
  34. $courses = $courses->where('start_date', '>=', $carbon_begin->startOfDay());
  35. $courses = $courses->where('start_date', '<=', $carbon_finish->endOfDay());
  36. }
  37. }
  38. if($request->has('month')){
  39. $month = $request->get('month');
  40. $courses = $courses->where('status','!=', 'draft')->whereMonth('start_date', '=', $month);
  41. }
  42.  
  43.  
  44. if($request->has('tutor')) {
  45. $courses = $courses->where('status','!=', 'draft')->where('tutor_id', $request->get('tutor'));
  46. }
  47.  
  48. if($request->has('day')) {
  49. $courses = $courses->where('status','!=', 'draft')->where('course_day', $request->get('day'));
  50. }
  51.  
  52. //time_of_day
  53. if($request->has('time_of_day')) {
  54. //start_date_time
  55. if($request->get('time_of_day') == 'am') {
  56. $courses = $courses->whereBetween(DB::raw('TIME(`start_date`)'), ['00:00:01', '16:59:59']);
  57. } elseif($request->get('time_of_day') == 'pm') {
  58. $courses = $courses->whereBetween(DB::raw('TIME(`start_date`)'), ['17:00:00', '23:00:00']);
  59. }
  60. }
  61.  
  62. //Keyword
  63. if($request->has('keyword')) {
  64. $categorys_ids = Category::select('id')->where('name', 'LIKE', '%'.$request->get('keyword').'%')->lists('id')->toArray();
  65. $tags_ids = Tag::select('id')->where('name', 'LIKE', '%'.$request->get('keyword').'%')->lists('id')->toArray();
  66. $courses = $courses->where('status','!=', 'draft')->where(function ($query) use ($request, $categorys_ids, $tags_ids) {
  67. $query
  68. ->orWhere('name', 'LIKE', '%'.$request->get('keyword').'%')
  69. ->orWhere(function ($query) use ($request, $categorys_ids) {
  70. $query->whereHas('categories', function ($query) use ($request, $categorys_ids) {
  71. $query->whereIn('category_id', $categorys_ids);
  72. });
  73. })->orWhere(function ($query) use ($request, $tags_ids) {
  74. $query->whereHas('tags', function ($query) use ($request, $tags_ids) {
  75. $query->whereIn('tag_id', $tags_ids);
  76. });
  77. });
  78. });
  79. }
  80.  
  81. //Orderby
  82. if($request->has('order_by')) {
  83. // $courses = Course::orderBy('start_date', $request->order_by);
  84. // $courses = $query->orderBy('start_date', $request->order_by);
  85. $courses = $courses->where('status','!=', 'draft')->orderBy('start_date', $request->order_by);
  86.  
  87. }
  88.  
  89. $tutors = Tutor::orderBy('last_name', 'asc')->take(12)->get();
  90. $courses = $courses->paginate(10);
  91. $info = Terminfo::first();
  92. $course_categories = Category::where('parent_id', '=!', '')->get();
  93.  
  94. if(isset($_GET['category_parent']))
  95. {
  96. $current_course_category = Category::where('parent_id', $_GET['category_parent'])->get();
  97. $current_course_category_first = Category::where('id', $_GET['category_parent'])->first();
  98. }
  99. return view('frontend.pages.results', compact('courses', 'tutors', 'course_categories', 'current_course_category', 'current_course_category_first', 'info'));
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement