👁 查看:SliderController.php
路径:/home/boguraj1/.trash/app/Http/Controllers/Admin/SliderController.php
大小:1.6 KB · 修改:2026-07-23 16:13:46 · 权限:0644 · 可写
<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use App\Models\Slider;
use Illuminate\Http\Request;

class SliderController extends Controller
{
    public function index()
    {
        $sliders = Slider::orderBy('sort_order')->get();
        return view('admin.sliders.index', compact('sliders'));
    }

    public function store(Request $request)
    {
        $request->validate([
            'image'      => 'required|image|max:4096',
            'sort_order' => 'nullable|integer',
        ]);

        $path = $request->file('image')->store('sliders', 'public');

        Slider::create([
            'image'      => $path,
            'sort_order' => $request->input('sort_order', 0),
            'status'     => $request->boolean('status', true),
        ]);

        return redirect()->route('admin.sliders.index')->with('success', 'Slider added.');
    }

    public function update(Request $request, Slider $slider)
    {
        $slider->update([
            'sort_order' => $request->input('sort_order', $slider->sort_order),
            'status'     => $request->boolean('status', true),
        ]);

        if ($request->hasFile('image')) {
            $request->validate(['image' => 'image|max:4096']);
            $slider->update(['image' => $request->file('image')->store('sliders', 'public')]);
        }

        return redirect()->route('admin.sliders.index')->with('success', 'Slider updated.');
    }

    public function destroy(Slider $slider)
    {
        $slider->delete();
        return redirect()->route('admin.sliders.index')->with('success', 'Slider removed.');
    }
}