TKK_E32211395/website/app/Http/Controllers/LokasiController.php

102 lines
3.0 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\LokasiMonitoring;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class LokasiController extends Controller
{
/**
* Display a listing of the user's lokasi_monitoring.
*/
public function index()
{
$user = Auth::user();
$lokasi_monitoring = LokasiMonitoring::where('user_id', $user->id)->get();
$title = "Dashboard | Daftar Lokasi"; // Anda juga bisa menetapkan nilai variabel $title di sini
return view('dashboard.lokasi.index', compact('lokasi_monitoring','title'));
}
/**
* Show the form for creating a new lokasi.
*/
public function create()
{
$users = User::all();
$title = "Dashboard | Tambah Lokasi"; // Anda juga bisa menetapkan nilai variabel $title di sini
return view('dashboard.lokasi.create', compact('users', 'title'));
}
/**
* Store a newly created kebun in storage.
*/
public function store(Request $request)
{
$request->validate([
'nama_lokasi' => 'required|string|max:255',
'alamat' => 'required|string|max:255',
'deskripsi' => 'required|string|max:255',
]);
LokasiMonitoring::create([
'nama_lokasi' => $request->nama_lokasi,
'alamat' => $request->alamat,
'deskripsi' => $request->deskripsi,
'user_id' => Auth::id(),
]);
return redirect()->route('lokasi.index')->with('success', 'Lokasi berhasil ditambahkan');
}
/**
* Display the specified lokasi.
*/
public function show(LokasiMonitoring $lokasi)
{
$this->authorize('view', $lokasi);
return view('lokasi.show', compact('lokasi'));
}
/**
* Show the form for editing the specified lokasi.
*/
public function edit(LokasiMonitoring $lokasi)
{
$this->authorize('update', $lokasi);
return view('lokasi.edit', compact('lokasi'));
}
public function update(Request $request, LokasiMonitoring $lokasi)
{
$this->authorize('update', $lokasi);
$request->validate([
'nama_lokasi' => 'required|string|max:255',
'alamat' => 'required|string|max:255',
'deskripsi' => 'required|string|max:255',
]);
$lokasi->update($request->all());
return redirect()->route('lokasi.index')->with('success', 'Lokasi berhasil diperbarui');
}
public function destroy(LokasiMonitoring $lokasi)
{
$this->authorize('delete', $lokasi);
$lokasi->delete();
return redirect()->route('lokasi.index')->with('success', 'Lokasi berhasil dihapus');
}
public function getLokasiByUser(Request $request)
{
$user = $request->user();
$lokasi = LokasiMonitoring::where('user_id', $user->id)->get(['id', 'nama_lokasi']); // Sesuaikan dengan nama kolom tabel Anda
return response()->json($lokasi);
}
}