SI_Wisata_Gadis/app/Http/Controllers/pengunjungController.php

111 lines
3.4 KiB
PHP

<?php
namespace App\Http\Controllers;
use Carbon\Carbon;
use App\Models\DataEvent;
use App\Models\DataWisata;
use App\Models\DataKuliner;
use App\Models\DataKategori;
use App\Models\DataKategoriDetail;
use Illuminate\Support\Facades\Log;
use Illuminate\Http\Request;
class PengunjungController extends Controller
{
public function beranda()
{
$event = DataEvent::where(function ($query) {
$query->where('is_temporer', 0)
->orWhere(function ($query) {
$query->where('is_temporer', 1)
->where('event_berakhir', '>=', now());
});
})->get();
$event->transform(function ($e) {
$e->event_mulai_tanggal = Carbon::parse($e->event_mulai)->translatedFormat('d F Y');
$e->event_berakhir_tanggal = Carbon::parse($e->event_berakhir)->translatedFormat('d F Y');
$e->event_mulai_waktu = Carbon::parse($e->event_mulai)->format('H:i');
$e->event_berakhir_waktu = Carbon::parse($e->event_berakhir)->format('H:i');
$e->htm_event = number_format($e->htm_event, 0, ',', '');
return $e;
});
$wisata = DataWisata::all();
$filterWisata = DataWisata::with('kategori_detail.kategori')
->inRandomOrder()
->limit(4)
->get();
return view('pengunjung.beranda', compact('event', 'wisata', 'filterWisata'));
}
public function getKategoriDetails($kategori_id)
{
$kategoriDetails = DataKategoriDetail::where('id_kategori', $kategori_id)->get();
return response()->json($kategoriDetails);
}
public function wisata(Request $request)
{
$kategoris = DataKategori::all();
$query = DataWisata::query();
if ($request->filled('nama_wisata')) {
$query->where('nama_wisata', 'like', '%' . $request->nama_wisata . '%');
}
if ($request->filled('id_kategori')) {
$query->whereHas('kategori_detail', function ($q) use ($request) {
$q->where('id_kategori', $request->id_kategori);
});
}
$wisata = $query->paginate(20);
return view('pengunjung.wisata', compact('kategoris', 'wisata'));
}
public function rute($nama_wisata)
{
$rute = DataWisata::where('nama_wisata', $nama_wisata)->firstOrFail();
return view('pengunjung.ruteTerdekat', compact('rute'));
}
public function petaWilayah()
{
$peta = DataWisata::with('kategori_detail.kategori')->get();
$rute = DataWisata::with('kategori_detail.kategori')->paginate(10);
return view('pengunjung.petaWilayah', compact('peta', 'rute'));
}
public function detailWisata($nama_wisata)
{
$data = DataWisata::where('nama_wisata', $nama_wisata)
->with(['kategori_detail.kategori', 'events', 'kuliners', 'komentars'])
->firstOrFail();
$imgDetails = json_decode($data->img_detail, true) ?? [];
shuffle($imgDetails);
$imgDetails = array_slice($imgDetails, 0, 8);
$lainnya = DataWisata::where('id', '!=', $data->id)
->inRandomOrder()
->limit(4)
->with('kategori_detail.kategori')
->get();
return view('pengunjung.profilWisata', compact(
'data',
'imgDetails',
'lainnya'
));
}
}