gambar kategori
This commit is contained in:
parent
72b51b00a3
commit
622e7e6e8c
|
|
@ -3,14 +3,16 @@
|
||||||
namespace App\Http\Controllers\Admin;
|
namespace App\Http\Controllers\Admin;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Models\KategoriTps;
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\KategoriTps;
|
||||||
|
use Illuminate\Support\Facades\Storage;
|
||||||
|
use Illuminate\Support\Facades\Validator;
|
||||||
|
|
||||||
class KategoriTpsController extends Controller
|
class KategoriTpsController extends Controller
|
||||||
{
|
{
|
||||||
|
// Tampilkan data kategori
|
||||||
public function index(Request $request)
|
public function index(Request $request)
|
||||||
{
|
{
|
||||||
$title = 'Kategori TPS';
|
|
||||||
$search = $request->search;
|
$search = $request->search;
|
||||||
|
|
||||||
$kategori = KategoriTps::when($search, function ($query) use ($search) {
|
$kategori = KategoriTps::when($search, function ($query) use ($search) {
|
||||||
|
|
@ -19,113 +21,108 @@ public function index(Request $request)
|
||||||
->orderBy('id_kategori_tps', 'desc')
|
->orderBy('id_kategori_tps', 'desc')
|
||||||
->paginate(10);
|
->paginate(10);
|
||||||
|
|
||||||
return view('admin.kategori-tps.index', compact('title', 'kategori'));
|
return view('admin.kategori-tps.index', compact('kategori'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Form tambah
|
||||||
public function create()
|
public function create()
|
||||||
{
|
{
|
||||||
$title = 'Tambah Kategori TPS';
|
return view('admin.kategori-tps.create');
|
||||||
return view('admin.kategori-tps.create', compact('title'));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Simpan kategori
|
||||||
public function store(Request $request)
|
public function store(Request $request)
|
||||||
{
|
{
|
||||||
$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' => '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(
|
|
||||||
[
|
|
||||||
'nama_kategori' => 'required|string|max:100',
|
'nama_kategori' => 'required|string|max:100',
|
||||||
'kepanjangan_kategori' => 'required|string|max:255',
|
'kepanjangan_kategori' => 'required|string|max:255',
|
||||||
'deskripsi' => 'required|string',
|
'deskripsi' => 'required|string',
|
||||||
'foto_kategori' => 'nullable|image|mimes:jpg,jpeg,png|max:2048',
|
'foto_kategori' => 'nullable|image|mimes:jpg,jpeg,png|max:2048',
|
||||||
],
|
], [
|
||||||
[
|
|
||||||
'nama_kategori.required' => 'Nama kategori wajib diisi',
|
'nama_kategori.required' => 'Nama kategori wajib diisi',
|
||||||
'kepanjangan_kategori.required' => 'Kepanjangan kategori wajib diisi',
|
'kepanjangan_kategori.required' => 'Kepanjangan kategori wajib diisi',
|
||||||
'deskripsi.required' => 'Deskripsi kategori wajib diisi',
|
'deskripsi.required' => 'Deskripsi 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',
|
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')) {
|
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))) {
|
if ($kategori->foto_kategori) {
|
||||||
unlink(public_path('assets/admin/images/kategori-tps/' . $kategori->foto_kategori));
|
Storage::disk('public')->delete($kategori->foto_kategori);
|
||||||
}
|
}
|
||||||
|
|
||||||
$file = $request->file('foto_kategori');
|
$data['foto_kategori'] = $request->file('foto_kategori')
|
||||||
$filename = strtolower(str_replace(' ', '_', $request->nama_kategori))
|
->store('kategori-tps', 'public');
|
||||||
. '_' . time()
|
|
||||||
. '.' . $file->getClientOriginalExtension();
|
|
||||||
$file->move(public_path('assets/admin/images/kategori-tps'), $filename);
|
|
||||||
$data['foto_kategori'] = $filename;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$kategori->update($data);
|
$kategori->update($data);
|
||||||
|
|
||||||
return redirect()
|
return redirect()->route('admin.kategori.index')
|
||||||
->route('admin.kategori.index')
|
|
||||||
->with('success', 'Kategori TPS berhasil diperbarui');
|
->with('success', 'Kategori TPS berhasil diperbarui');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Hapus kategori
|
||||||
public function destroy($id)
|
public function destroy($id)
|
||||||
{
|
{
|
||||||
$kategori = KategoriTps::findOrFail($id);
|
$kategori = KategoriTps::findOrFail($id);
|
||||||
|
|
||||||
if ($kategori->foto_kategori && file_exists(public_path('assets/admin/images/kategori-tps/' . $kategori->foto_kategori))) {
|
if ($kategori->foto_kategori) {
|
||||||
unlink(public_path('assets/admin/images/kategori-tps/' . $kategori->foto_kategori));
|
Storage::disk('public')->delete($kategori->foto_kategori);
|
||||||
}
|
}
|
||||||
|
|
||||||
$kategori->delete();
|
$kategori->delete();
|
||||||
|
|
||||||
return redirect()
|
return redirect()->route('admin.kategori.index')
|
||||||
->route('admin.kategori.index')
|
|
||||||
->with('success', 'Kategori TPS berhasil dihapus');
|
->with('success', 'Kategori TPS berhasil dihapus');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue