101 lines
2.8 KiB
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');
|
|
}
|
|
}
|