get(); return view('admin.banners.index', compact('banners')); } public function create() { return view('admin.banners.form'); } public function store(Request $request) { $data = $this->validated($request); Banner::create($data); return redirect()->route('admin.banners.index')->with('success', 'Banner erstellt.'); } public function edit(Banner $banner) { return view('admin.banners.form', compact('banner')); } public function update(Request $request, Banner $banner) { $data = $this->validated($request, $banner); $banner->update($data); return redirect()->route('admin.banners.index')->with('success', 'Banner aktualisiert.'); } public function destroy(Banner $banner) { $banner->delete(); return redirect()->route('admin.banners.index')->with('success', 'Banner gelöscht.'); } private function validated(Request $request, ?Banner $banner = null): array { $data = $request->validate([ 'headline' => 'nullable|string|max:255', 'subtext' => 'nullable|string|max:500', 'button_label' => 'nullable|string|max:100', 'button_link' => 'nullable|string|max:500', 'sort_order' => 'integer', 'active' => 'boolean', ]); $data['active'] = $request->boolean('active'); if ($request->hasFile('image')) { $data['image'] = $request->file('image')->store('banners', 'public'); } elseif ($banner) { $data['image'] = $banner->image; } return $data; } }