TIF_E41201781/app/Http/Controllers/GaleriController.php

99 lines
3.0 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Galeri;
use Illuminate\Http\Request;
class GaleriController extends Controller
{
public function index(){
$galeri = Galeri::all();
return view('galeri.index', compact(['galeri']));
}
public function create()
{
return view('galeri.create');
}
public function store(Request $request)
{
// Validasi request
$request->validate([
'nama_kucing' => 'required',
'deskripsi' => 'required',
'gambar_kucing' => 'required|image|mimes:jpeg,png,jpg,gif|max:2048', // validasi untuk file gambar
]);
// Simpan gambar
$imageName = $this->upload_file($request->file('gambar_kucing'), $request->nama_kucing);
// Simpan data galeri ke dalam database
Galeri::create([
'nama_kucing' => $request->nama_kucing,
'deskripsi' => $request->deskripsi,
'gambar_kucing' => $imageName, // Simpan nama gambar ke dalam database
]);
return redirect('/galeri')->with('success', 'Data galeri berhasil disimpan');
}
// fungsi mengunggah file
public function upload_file($image, $nama_kucing){
// Generate nama file baru
$imageName = strtolower($nama_kucing) . '.' . $image->getClientOriginalExtension();
// Pindahkan gambar ke folder yang diinginkan
$image->move(public_path('img/galeri'), $imageName);
return $imageName;
}
public function edit($id)
{
$galeri = Galeri::find($id);
return view('galeri.edit', compact('galeri'));
}
public function update($id, Request $request)
{
$galeri = Galeri::find($id);
// Validasi request
$request->validate([
'nama_kucing' => 'required',
'deskripsi' => 'required',
'gambar_kucing' => 'nullable|image|mimes:jpeg,png,jpg,gif|max:2048', // validasi untuk file gambar
]);
// Jika ada gambar baru yang diunggah, simpan gambar yang baru
if ($request->hasFile('gambar_kucing')) {
// Hapus gambar lama dari server
if ($galeri->gambar_kucing) {
unlink(public_path('img/galeri/' . $galeri->gambar_kucing));
}
// Simpan gambar baru
$imageName = $this->upload_file($request->file('gambar_kucing'), $request->nama_kucing); // tambahkan $request->nama_kucing sebagai parameter
$galeri->gambar_kucing = $imageName;
}
// Update data galeri ke dalam database
$galeri->nama_kucing = $request->nama_kucing;
$galeri->deskripsi = $request->deskripsi;
$galeri->save();
return redirect('/galeri')->with('success', 'Data galeri berhasil diperbarui');
}
public function destroy($id)
{
$galeri = Galeri::findOrFail($id);
$galeri->delete();
return redirect('/galeri')->with('success', 'Data berhasil dihapus');
}
}