gambar kategori
This commit is contained in:
parent
72b51b00a3
commit
622e7e6e8c
|
|
@ -3,14 +3,16 @@
|
|||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\KategoriTps;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\KategoriTps;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
class KategoriTpsController extends Controller
|
||||
{
|
||||
// Tampilkan data kategori
|
||||
public function index(Request $request)
|
||||
{
|
||||
$title = 'Kategori TPS';
|
||||
$search = $request->search;
|
||||
|
||||
$kategori = KategoriTps::when($search, function ($query) use ($search) {
|
||||
|
|
@ -19,113 +21,108 @@ public function index(Request $request)
|
|||
->orderBy('id_kategori_tps', 'desc')
|
||||
->paginate(10);
|
||||
|
||||
return view('admin.kategori-tps.index', compact('title', 'kategori'));
|
||||
return view('admin.kategori-tps.index', compact('kategori'));
|
||||
}
|
||||
|
||||
// Form tambah
|
||||
public function create()
|
||||
{
|
||||
$title = 'Tambah Kategori TPS';
|
||||
return view('admin.kategori-tps.create', compact('title'));
|
||||
return view('admin.kategori-tps.create');
|
||||
}
|
||||
|
||||
// Simpan kategori
|
||||
public function store(Request $request)
|
||||
{
|
||||
$data = $request->validate(
|
||||
[
|
||||
'nama_kategori' => 'required|string|max:100',
|
||||
'kepanjangan_kategori' => 'required|string|max:255',
|
||||
'deskripsi' => 'required|string',
|
||||
'foto_kategori' => 'required|image|mimes:jpg,jpeg,png|max:2048',
|
||||
],
|
||||
[
|
||||
'nama_kategori.required' => 'Nama kategori wajib diisi',
|
||||
'kepanjangan_kategori.required' => 'Kepanjangan kategori wajib diisi',
|
||||
'deskripsi.required' => 'Deskripsi kategori wajib diisi',
|
||||
'foto_kategori.required' => 'Foto kategori wajib diunggah',
|
||||
'foto_kategori.image' => 'File harus berupa gambar',
|
||||
'foto_kategori.mimes' => 'Format gambar harus JPG, JPEG, atau PNG',
|
||||
'foto_kategori.max' => 'Ukuran gambar maksimal 2 MB',
|
||||
]
|
||||
);
|
||||
|
||||
// Upload foto ke public/assets/admin/images/kategori-tps
|
||||
if ($request->hasFile('foto_kategori')) {
|
||||
$file = $request->file('foto_kategori');
|
||||
$filename = strtolower(str_replace(' ', '_', $request->nama_kategori))
|
||||
. '_' . time()
|
||||
. '.' . $file->getClientOriginalExtension();
|
||||
$file->move(public_path('assets/admin/images/kategori-tps'), $filename);
|
||||
$data['foto_kategori'] = $filename;
|
||||
}
|
||||
|
||||
KategoriTps::create($data);
|
||||
|
||||
return redirect()
|
||||
->route('admin.kategori.index')
|
||||
->with('success', 'Kategori TPS berhasil ditambahkan');
|
||||
}
|
||||
|
||||
public function edit($id)
|
||||
{
|
||||
$title = 'Edit Kategori TPS';
|
||||
$kategori = KategoriTps::findOrFail($id);
|
||||
return view('admin.kategori-tps.edit', compact('title', 'kategori'));
|
||||
}
|
||||
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$kategori = KategoriTps::findOrFail($id);
|
||||
|
||||
$data = $request->validate(
|
||||
[
|
||||
$validator = Validator::make($request->all(), [
|
||||
'nama_kategori' => 'required|string|max:100',
|
||||
'kepanjangan_kategori' => 'required|string|max:255',
|
||||
'deskripsi' => 'required|string',
|
||||
'foto_kategori' => 'nullable|image|mimes:jpg,jpeg,png|max:2048',
|
||||
],
|
||||
[
|
||||
], [
|
||||
'nama_kategori.required' => 'Nama kategori wajib diisi',
|
||||
'kepanjangan_kategori.required' => 'Kepanjangan kategori wajib diisi',
|
||||
'deskripsi.required' => 'Deskripsi kategori wajib diisi',
|
||||
'foto_kategori.image' => 'File harus berupa gambar',
|
||||
'foto_kategori.mimes' => 'Format gambar harus JPG, JPEG, atau PNG',
|
||||
'foto_kategori.max' => 'Ukuran gambar maksimal 2 MB',
|
||||
]
|
||||
'deskripsi.required' => 'Deskripsi wajib diisi',
|
||||
]);
|
||||
|
||||
if ($validator->fails()) {
|
||||
return redirect()->back()->withErrors($validator)->withInput();
|
||||
}
|
||||
|
||||
$data = $request->only(
|
||||
'nama_kategori',
|
||||
'kepanjangan_kategori',
|
||||
'deskripsi'
|
||||
);
|
||||
|
||||
// Upload foto
|
||||
if ($request->hasFile('foto_kategori')) {
|
||||
$data['foto_kategori'] = $request->file('foto_kategori')
|
||||
->store('kategori-tps', 'public');
|
||||
}
|
||||
|
||||
KategoriTps::create($data);
|
||||
|
||||
return redirect()->route('admin.kategori.index')
|
||||
->with('success', 'Kategori TPS berhasil ditambahkan');
|
||||
}
|
||||
|
||||
// Form edit
|
||||
public function edit($id)
|
||||
{
|
||||
$kategori = KategoriTps::findOrFail($id);
|
||||
return view('admin.kategori-tps.edit', compact('kategori'));
|
||||
}
|
||||
|
||||
// Update kategori
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$kategori = KategoriTps::findOrFail($id);
|
||||
|
||||
$validator = Validator::make($request->all(), [
|
||||
'nama_kategori' => 'required|string|max:100',
|
||||
'kepanjangan_kategori' => 'required|string|max:255',
|
||||
'deskripsi' => 'required|string',
|
||||
'foto_kategori' => 'nullable|image|mimes:jpg,jpeg,png|max:2048',
|
||||
]);
|
||||
|
||||
if ($validator->fails()) {
|
||||
return redirect()->back()->withErrors($validator)->withInput();
|
||||
}
|
||||
|
||||
$data = $request->only(
|
||||
'nama_kategori',
|
||||
'kepanjangan_kategori',
|
||||
'deskripsi'
|
||||
);
|
||||
|
||||
if ($request->hasFile('foto_kategori')) {
|
||||
// Hapus foto lama jika ada
|
||||
if ($kategori->foto_kategori && file_exists(public_path('assets/admin/images/kategori-tps/' . $kategori->foto_kategori))) {
|
||||
unlink(public_path('assets/admin/images/kategori-tps/' . $kategori->foto_kategori));
|
||||
|
||||
if ($kategori->foto_kategori) {
|
||||
Storage::disk('public')->delete($kategori->foto_kategori);
|
||||
}
|
||||
|
||||
$file = $request->file('foto_kategori');
|
||||
$filename = strtolower(str_replace(' ', '_', $request->nama_kategori))
|
||||
. '_' . time()
|
||||
. '.' . $file->getClientOriginalExtension();
|
||||
$file->move(public_path('assets/admin/images/kategori-tps'), $filename);
|
||||
$data['foto_kategori'] = $filename;
|
||||
$data['foto_kategori'] = $request->file('foto_kategori')
|
||||
->store('kategori-tps', 'public');
|
||||
}
|
||||
|
||||
$kategori->update($data);
|
||||
|
||||
return redirect()
|
||||
->route('admin.kategori.index')
|
||||
return redirect()->route('admin.kategori.index')
|
||||
->with('success', 'Kategori TPS berhasil diperbarui');
|
||||
}
|
||||
|
||||
// Hapus kategori
|
||||
public function destroy($id)
|
||||
{
|
||||
$kategori = KategoriTps::findOrFail($id);
|
||||
|
||||
if ($kategori->foto_kategori && file_exists(public_path('assets/admin/images/kategori-tps/' . $kategori->foto_kategori))) {
|
||||
unlink(public_path('assets/admin/images/kategori-tps/' . $kategori->foto_kategori));
|
||||
if ($kategori->foto_kategori) {
|
||||
Storage::disk('public')->delete($kategori->foto_kategori);
|
||||
}
|
||||
|
||||
$kategori->delete();
|
||||
|
||||
return redirect()
|
||||
->route('admin.kategori.index')
|
||||
return redirect()->route('admin.kategori.index')
|
||||
->with('success', 'Kategori TPS berhasil dihapus');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue