1
0

PlaceController.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. $this->validate($request, [
  17. 'page' => 'sometimes|max:10'
  18. ]);
  19. $place = Place::whereSlug($slug)->findOrFail($id);
  20. $posts = Status::wherePlaceId($place->id)
  21. ->whereNull('uri')
  22. ->whereScope('public')
  23. ->orderByDesc('created_at')
  24. ->simplePaginate(10);
  25. return view('discover.places.show', compact('place', 'posts'));
  26. }
  27. public function directoryHome(Request $request)
  28. {
  29. $places = Place::select('country')
  30. ->distinct('country')
  31. ->simplePaginate(48);
  32. return view('discover.places.directory.home', compact('places'));
  33. }
  34. public function directoryCities(Request $request, $country)
  35. {
  36. $country = ucfirst(urldecode($country));
  37. $places = Place::whereCountry($country)
  38. ->orderBy('name', 'asc')
  39. ->distinct('name')
  40. ->simplePaginate(48);
  41. return view('discover.places.directory.cities', compact('places'));
  42. }
  43. }