111 lines
3.4 KiB
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'
|
|
));
|
|
}
|
|
|
|
}
|