[Update Temlete]

This commit is contained in:
Arief Dwi Wicaksono 2025-10-09 10:22:51 +07:00
parent 0110d6275f
commit 50e9ba339e
2 changed files with 27 additions and 33 deletions

View File

@ -23,29 +23,29 @@ class TemplateController extends Controller
// Update template (nama, harga, paket, foto) // Update template (nama, harga, paket, foto)
public function update(Request $request, Template $template) public function update(Request $request, Template $template)
{ {
$validated = $request->validate([ $validated = $request->validate([
'nama_template' => 'required|string|max:255', 'nama_template' => 'required|string|max:255',
'harga' => 'required|numeric|min:0', 'harga' => 'required|numeric|min:0',
'paket' => 'required|in:starter,basic,premium', 'foto' => 'nullable|image|mimes:jpg,jpeg,png|max:5120',
'foto' => 'nullable|image|mimes:jpg,jpeg,png|max:5120 ', ]);
]);
// kalau ada upload foto baru // kalau ada upload foto baru
if ($request->hasFile('foto')) { if ($request->hasFile('foto')) {
// hapus foto lama kalau ada if ($template->foto && Storage::exists('public/' . $template->foto)) {
if ($template->foto && Storage::exists('public/' . $template->foto)) { Storage::delete('public/' . $template->foto);
Storage::delete('public/' . $template->foto);
}
// simpan foto baru
$path = $request->file('foto')->store('templates', 'public');
$validated['foto'] = $path;
} }
$template->update($validated); $path = $request->file('foto')->store('templates', 'public');
$validated['foto'] = $path;
return redirect()->route('admin.template.index')
->with('success', 'Template berhasil diperbarui!');
} }
// pastikan 'paket' tidak diubah
$validated['paket'] = $template->paket;
$template->update($validated);
return redirect()->route('admin.template.index')
->with('success', 'Template berhasil diperbarui!');
}
} }

View File

@ -52,18 +52,12 @@
</div> </div>
{{-- Paket --}} {{-- Paket --}}
<div> <div class="mb-3">
<label for="paket" class="block text-sm font-medium text-gray-700 mb-2">Paket</label> <label for="paket" class="form-label">Paket</label>
<select id="paket" name="paket" <input type="text" name="paket" id="paket"
class="w-full border border-gray-300 rounded-lg px-4 py-2 bg-gray-50 focus:ring-2 focus:ring-blue-400 focus:outline-none @error('paket') border-red-500 @enderror" value="{{ $template->paket }}"
required> class="form-control"
<option value="starter" {{ old('paket', $template->paket) == 'starter' ? 'selected' : '' }}>Starter</option> readonly>
<option value="basic" {{ old('paket', $template->paket) == 'basic' ? 'selected' : '' }}>Basic</option>
<option value="premium" {{ old('paket', $template->paket) == 'premium' ? 'selected' : '' }}>Premium</option>
</select>
@error('paket')
<p class="text-red-500 text-sm mt-1">{{ $message }}</p>
@enderror
</div> </div>
{{-- Foto / Gambar --}} {{-- Foto / Gambar --}}