get(); $kategoris = Kategori::all(); $fiturs = Fitur::all(); return view('admin.templates.index', compact('templates', 'kategoris', 'fiturs')); } public function store(Request $request) { $data = $request->validate([ 'nama_template' => 'required|string|max:255', 'kategori_id' => 'required|exists:kategoris,id', 'fitur_id' => 'required|exists:fiturs,id', 'foto' => 'nullable|image|mimes:jpg,jpeg,png,gif|max:5120', 'harga' => 'required|numeric|min:0' ]); if ($request->hasFile('foto')) { $data['foto'] = $request->file('foto')->store('templates', 'public'); } Template::create($data); return redirect()->route('templates.index')->with('success', 'Template berhasil ditambahkan!'); } public function update(Request $request, Template $template) { $data = $request->validate([ 'nama_template' => 'required|string|max:255', 'kategori_id' => 'required|exists:kategoris,id', 'fitur_id' => 'required|exists:fiturs,id', 'foto' => 'nullable|image|mimes:jpg,jpeg,png,gif|max:5120', 'harga' => 'required|numeric|min:0' ]); if ($request->hasFile('foto')) { if ($template->foto && Storage::disk('public')->exists($template->foto)) { Storage::disk('public')->delete($template->foto); } $data['foto'] = $request->file('foto')->store('templates', 'public'); } $template->update($data); return redirect()->route('templates.index')->with('success', 'Template berhasil diperbarui!'); } public function destroy(Template $template) { if ($template->foto && Storage::disk('public')->exists($template->foto)) { Storage::disk('public')->delete($template->foto); } $template->delete(); return redirect()->route('templates.index')->with('success', 'Template berhasil dihapus!'); } public function byKategori($id) { $kategori = Kategori::findOrFail($id); $templates = Template::with(['kategori','fitur']) ->where('kategori_id', $id) ->get(); $kategoris = Kategori::all(); $fiturs = Fitur::all(); return view('admin.templates.index', compact('templates', 'kategoris', 'fiturs', 'kategori')); } }