/
home
/
obinna
/
html
/
cravings
/
app
/
Http
/
Controllers
/
Upload File
HOME
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Food; use App\Foods; use App\Http\Services\ImageManager; use App\Place; use Illuminate\Support\Facades\DB; class FoodController extends Controller { private $db; function __construct() { $this->db = DB::getMongoDB(); } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { $food = Foods::simplePaginate(15); return view('food.index', ['food' => $food, 'page' => 'Food']); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { // } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $data = json_decode($request->getContent(), true); $food = Food::create([ 'name' => $data['name'], 'origin' => $data['origin'], 'type' => $data['type'], 'category' => $data['category'] ]); return response()->json($food->toArray()); } /** * Show places close to a location * **/ public function nearby($food, $address, $lnglat) { $ll = explode(",", $lnglat); $lat = floatval($ll[0]); $lng = floatval($ll[1]); $decodeadd = implode(" ", explode("+", $address)); // Save search location in session if (isset($_GET['remember']) && $_GET['remember'] === 'true') { $add = json_encode(['address' => $decodeadd, 'lng' => $lng, 'lat' => $lat]); session(['location' => $add]); } // $data = json_decode($request->getContent(), true) $foods = implode(" ", explode("+", $food)); if ($foods !== 'all') { $places = Place::where('location', 'near', [ '$geometry' => [ 'type' => 'Point', 'coordinates' => [ $lng, $lat ] ], '$minDistance' => 1, '$maxDistance' => 5000 ])->where('food.name', 'regex', "/.*$foods*/i")->simplePaginate(15); // var_dump($places);die; } else { $places = Place::where('location', 'near', [ '$geometry' => [ 'type' => 'Point', 'coordinates' => [ $lng, $lat ] ], '$minDistance' => 1, '$maxDistance' => 5000 ])->simplePaginate(15); $foods = NULL; // var_dump($places);die; } return view('places.nearby', ['places' => $places, 'page' => 'Food', 'current' => $foods, 'lnglat' => $lnglat, 'add' => $decodeadd]); } public function rating(Request $request) { $data = json_decode($request->getContent(), true); return $this->postFoodRating($data); } }