Beispiel #1
0
 /**
  * Make the list for json autocomplete search
  *
  * @return string
  */
 public static function cityListForAutoComplete()
 {
     $cities = City::select(['id', 'name'])->orderBy('name')->get()->transform(function ($city) {
         return $city['name'] = $city['name'] . ' (' . City::whereId($city['id'])->first()->province->name . ')';
     });
     return "var cities = " . $cities->toJson();
 }
Beispiel #2
0
        // get all the categories in the cities
        $categories = \App\Category::whereHas('ranks', function ($query) use($city) {
            $query->where('city_id', '=', $city->id);
        })->get();
        return response()->json($categories);
    });
    Route::get('/categories/{categoryId}', function ($categoryId) {
        $category = \App\Category::find($categoryId);
        return response()->json($category);
    });
    Route::get('/categories/{categoryId}/places', function ($categoryId) {
        $lat = \Illuminate\Support\Facades\Input::get('lat', -27.49611);
        $lon = \Illuminate\Support\Facades\Input::get('lon', 153.00207);
        // Check if a valid location
        $radius = 25;
        $city = \App\City::select(DB::raw("*, (6371 * acos( cos( radians({$lat}) ) * cos( radians( latitude ) ) * cos( radians( {$lon} ) - radians(longitude) ) + sin( radians({$lat}) ) * sin( radians(latitude) ) )) AS distance"))->having('distance', '<', $radius)->orderby('distance', 'asc')->first();
        if (!$city) {
            abort(400, 'City not supported.');
        }
        $places = \App\Place::select(DB::raw("*, (6371 * acos( cos( radians({$lat}) ) * cos( radians( latitude ) ) * cos( radians( {$lon} ) - radians(longitude) ) + sin( radians({$lat}) ) * sin( radians(latitude) ) )) AS distance"))->orderby('distance', 'asc')->whereHas('ranks', function ($query) use($categoryId) {
            $query->where('category_id', '=', $categoryId);
        })->where('city_id', '=', $city->id)->with('ranks', 'ranks.category')->get();
        return response()->json($places);
    });
    Route::get('/yelp', function () {
        $yelp = new \App\Yelp\Yelp();
        echo "<pre>";
        print_r($yelp->best('pizza', 'Brisbane, Australia'));
        echo "</pre>";
    });
});