MIF_E31230580/app/Http/Controllers/GestureController.php

88 lines
2.5 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Gesture;
use Illuminate\Http\Request;
class GestureController extends Controller
{
// Fungsi untuk menampilkan katalog (User & Admin pakai ini)
public function index()
{
$gestures = Gesture::all();
return view('gesture.index', compact('gestures'));
}
public function userIndex()
{
// Ambil semua data gesture dari database
$gestures = \App\Models\Gesture::all();
// Kirim data $gestures ke view 'gesture.index'
return view('gesture.index', compact('gestures'));
}
// Menampilkan form tambah
public function create()
{
return view('admin.gesture-create');
}
// Fungsi Store
public function store(Request $request)
{
$data = $request->validate([
'huruf_kata' => 'required',
'deskripsi' => 'nullable',
'gambar_contoh' => 'image|mimes:jpeg,png,jpg|max:2048',
]);
// Cek apakah ada file gambar yang di-upload
if ($request->hasFile('gambar_contoh')) {
$path = $request->file('gambar_contoh')->store('gestures', 'public');
$data['gambar_contoh'] = $path;
} else {
// Jika tidak mengupload gambar, gunakan default
$data['gambar_contoh'] = 'default_gesture.png';
}
Gesture::create($data);
return redirect()->route('admin.gesture')->with('success', 'Gesture berhasil ditambahkan!');
}
// Menampilkan form edit (INI YANG TADI KETINGGALAN)
public function edit($id)
{
$gesture = Gesture::findOrFail($id);
return view('admin.gesture-edit', compact('gesture'));
}
// Fungsi Update
public function update(Request $request, $id)
{
$gesture = Gesture::findOrFail($id);
$data = $request->validate([
'huruf_kata' => 'required',
'deskripsi' => 'nullable',
'gambar_contoh' => 'image|mimes:jpeg,png,jpg|max:2048',
]);
if ($request->hasFile('gambar_contoh')) {
$path = $request->file('gambar_contoh')->store('gestures', 'public');
$data['gambar_contoh'] = $path;
}
$gesture->update($data);
return redirect()->route('admin.gesture')->with('success', 'Data berhasil diupdate!');
}
// Hapus
public function destroy($id)
{
Gesture::destroy($id);
return redirect()->route('admin.gesture')->with('success', 'Data berhasil dihapus!');
}
}