TKK_E32211375/website/monitoring-cabai/app/Http/Controllers/KebunController.php

101 lines
2.8 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Kebun;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class KebunController extends Controller
{
/**
* Display a listing of the user's kebuns.
*/
public function index()
{
$user = Auth::user();
$kebuns = Kebun::where('user_id', $user->id)->get();
$title = "Dashboard | Daftar Kebun"; // Anda juga bisa menetapkan nilai variabel $title di sini
return view('dashboard.kebun.index', compact('kebuns','title'));
}
/**
* Show the form for creating a new kebun.
*/
public function create()
{
$users = User::all();
$title = "Dashboard | Tambah Kebun"; // Anda juga bisa menetapkan nilai variabel $title di sini
return view('dashboard.kebun.create', compact('users', 'title'));
}
/**
* Store a newly created kebun in storage.
*/
public function store(Request $request)
{
$request->validate([
'name' => 'required|unique:kebuns,name',
'location' => 'required',
'deskripsi' => 'required',
], [
'name.required' => 'Nama kebun harus diisi.',
'name.unique' => 'Nama kebun sudah ada, silakan gunakan nama lain.',
'location.required' => 'Lokasi harus diisi.',
'deskripsi.required' => 'Deskripsi harus diisi.',
]);
Kebun::create([
'name' => $request->name,
'location' => $request->location,
'deskripsi' => $request->deskripsi,
'user_id' => Auth::id(),
]);
return redirect()->route('kebun.index')->with('success', 'Kebun berhasil ditambahkan');
}
/**
* Display the specified kebun.
*/
public function show(Kebun $kebun)
{
$this->authorize('view', $kebun);
return view('kebun.show', compact('kebun'));
}
/**
* Show the form for editing the specified kebun.
*/
public function edit(Kebun $kebun)
{
$this->authorize('update', $kebun);
return view('kebun.edit', compact('kebun'));
}
public function update(Request $request, Kebun $kebun)
{
$this->authorize('update', $kebun);
$request->validate([
'name' => 'required|string|max:255',
'location' => 'required|string|max:255',
'deskripsi' => 'required|string|max:255',
]);
$kebun->update($request->all());
return redirect()->route('kebun.index')->with('success', 'Kebun berhasil diperbarui');
}
public function destroy(Kebun $kebun)
{
$this->authorize('delete', $kebun);
$kebun->delete();
return redirect()->route('kebun.index')->with('success', 'Kebun berhasil dihapus');
}
}