Beispiel #1
0
 static function geocoded()
 {
     $sel_cols_projects = array('projects.id', 'projects.data_id', 'projects.title', 'projects.description', 'projects.geo_type', 'projects.geo_address', 'projects.geo_lat', 'projects.geo_lng', 'projects.status');
     $sel_cols_geocodes = array('geocodes.lat', 'geocodes.lng', 'geocodes.status as geo_status');
     $projects_lat_lng = \DB::table('projects')->where('geo_type', 'lat_lng')->select($sel_cols_projects)->get();
     $projects_address = \DB::table('projects')->join('geocodes', 'projects.geo_address', '=', 'geocodes.address')->where('projects.geo_type', '=', 'address')->select(array_merge($sel_cols_projects, $sel_cols_geocodes))->get();
     $projects = array_merge($projects_lat_lng, $projects_address);
     $projects_id = array();
     foreach ($projects as $project) {
         array_push($projects_id, $project->id);
     }
     $projects_categories = \DB::table('project_category')->whereIn('project_id', $projects_id)->select('category_id')->distinct()->get();
     $category_ids = array();
     foreach ($projects_categories as $projects_category) {
         array_push($category_ids, $projects_category->category_id);
     }
     if (count($category_ids) == 0) {
         return null;
     }
     $categories = Category::whereIn('id', $category_ids)->get();
     return $categories;
 }