PlaceController.php 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use App\{
  5. Place,
  6. Status
  7. };
  8. class PlaceController extends Controller
  9. {
  10. public function __construct()
  11. {
  12. $this->middleware('auth');
  13. }
  14. public function show(Request $request, $id, $slug)
  15. {
  16. $place = Place::whereSlug($slug)->findOrFail($id);
  17. $posts = Status::wherePlaceId($place->id)
  18. ->whereNull('uri')
  19. ->whereScope('public')
  20. ->orderByDesc('created_at')
  21. ->simplePaginate(10);
  22. return view('discover.places.show', compact('place', 'posts'));
  23. }
  24. public function directoryHome(Request $request)
  25. {
  26. $places = Place::select('country')
  27. ->distinct('country')
  28. ->simplePaginate(48);
  29. return view('discover.places.directory.home', compact('places'));
  30. }
  31. public function directoryCities(Request $request, $country)
  32. {
  33. $country = ucfirst(urldecode($country));
  34. $places = Place::whereCountry($country)
  35. ->orderBy('name', 'asc')
  36. ->distinct('name')
  37. ->simplePaginate(48);
  38. return view('discover.places.directory.cities', compact('places'));
  39. }
  40. }