88 lines
2.5 KiB
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!');
|
|
}
|
|
} |