Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public function results(Request $request){
- $courses = Course::select(['*'])->where('status', '!=', 'draft');
- // if only parent category
- if($request->has('category_parent') AND !$request->has('category_child'))
- {
- $parent_category[] = (integer) $request->get('category_parent');
- $child_categories = Category::where('parent_id', $request->get('category_parent'))->lists('id')->toArray();
- $all_categories = array_merge($parent_category, $child_categories);
- $courses = $courses->whereHas('categories', function ($query) use ($all_categories) {
- $query->where(function ($query) use ($all_categories) {
- foreach ($all_categories as $category) $query->orWhere('category_id', '=', $category);
- });
- });
- // else with child category
- } elseif($request->has('category_parent') AND $request->has('category_child')) {
- $courses = $courses->where('status','!=', 'draft')->whereHas('categories', function ($query) use ($request) {
- $query->where('category_id', '=', $request->get('category_child'));
- });
- }
- if($request->has('course_week')) {
- $courses = $courses->where('status','!=', 'draft')->where('course_weeks', $request->get('course_week'));
- }
- // if set start date
- if($request->has('start_date')) {
- $start_date_begin = substr($request->get('start_date'), 0, 10);
- $start_date_finish = substr($request->get('start_date'), -10);
- 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)) {
- $carbon_begin = Carbon::createFromFormat('d/m/Y', $start_date_begin);
- $carbon_finish = Carbon::createFromFormat('d/m/Y', $start_date_finish);
- $courses = $courses->where('start_date', '>=', $carbon_begin->startOfDay());
- $courses = $courses->where('start_date', '<=', $carbon_finish->endOfDay());
- }
- }
- if($request->has('month')){
- $month = $request->get('month');
- $courses = $courses->where('status','!=', 'draft')->whereMonth('start_date', '=', $month);
- }
- if($request->has('tutor')) {
- $courses = $courses->where('status','!=', 'draft')->where('tutor_id', $request->get('tutor'));
- }
- if($request->has('day')) {
- $courses = $courses->where('status','!=', 'draft')->where('course_day', $request->get('day'));
- }
- //time_of_day
- if($request->has('time_of_day')) {
- //start_date_time
- if($request->get('time_of_day') == 'am') {
- $courses = $courses->whereBetween(DB::raw('TIME(`start_date`)'), ['00:00:01', '16:59:59']);
- } elseif($request->get('time_of_day') == 'pm') {
- $courses = $courses->whereBetween(DB::raw('TIME(`start_date`)'), ['17:00:00', '23:00:00']);
- }
- }
- //Keyword
- if($request->has('keyword')) {
- $categorys_ids = Category::select('id')->where('name', 'LIKE', '%'.$request->get('keyword').'%')->lists('id')->toArray();
- $tags_ids = Tag::select('id')->where('name', 'LIKE', '%'.$request->get('keyword').'%')->lists('id')->toArray();
- $courses = $courses->where('status','!=', 'draft')->where(function ($query) use ($request, $categorys_ids, $tags_ids) {
- $query
- ->orWhere('name', 'LIKE', '%'.$request->get('keyword').'%')
- ->orWhere(function ($query) use ($request, $categorys_ids) {
- $query->whereHas('categories', function ($query) use ($request, $categorys_ids) {
- $query->whereIn('category_id', $categorys_ids);
- });
- })->orWhere(function ($query) use ($request, $tags_ids) {
- $query->whereHas('tags', function ($query) use ($request, $tags_ids) {
- $query->whereIn('tag_id', $tags_ids);
- });
- });
- });
- }
- //Orderby
- if($request->has('order_by')) {
- // $courses = Course::orderBy('start_date', $request->order_by);
- // $courses = $query->orderBy('start_date', $request->order_by);
- $courses = $courses->where('status','!=', 'draft')->orderBy('start_date', $request->order_by);
- }
- $tutors = Tutor::orderBy('last_name', 'asc')->take(12)->get();
- $courses = $courses->paginate(10);
- $info = Terminfo::first();
- $course_categories = Category::where('parent_id', '=!', '')->get();
- if(isset($_GET['category_parent']))
- {
- $current_course_category = Category::where('parent_id', $_GET['category_parent'])->get();
- $current_course_category_first = Category::where('id', $_GET['category_parent'])->first();
- }
- return view('frontend.pages.results', compact('courses', 'tutors', 'course_categories', 'current_course_category', 'current_course_category_first', 'info'));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement