👁 查看:StaticPageController.php
路径:/home/boguraj1/.trash/app.1/Http/Controllers/Admin/StaticPageController.php
大小:2.42 KB · 修改:2026-07-17 23:32:14 · 权限:0644 · 可写
<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use App\Models\StaticPage;
use Illuminate\Http\Request;
use Illuminate\Support\Str;

class StaticPageController extends Controller
{
    public function index()
    {
        $pages = StaticPage::latest()->get();
        return view('admin.static_pages.index', compact('pages'));
    }

    public function create()
    {
        return view('admin.static_pages.form', ['page' => new StaticPage]);
    }

    public function store(Request $request)
    {
        $data = $request->validate([
            'title'   => 'required|string|max:200',
            'slug'    => 'nullable|string|max:200',
            'content' => 'nullable|string',
        ]);

        $data['slug']      = Str::slug($data['slug'] ?: $data['title']);
        $data['is_active'] = $request->boolean('is_active', true);

        // ensure unique slug
        $base = $data['slug'];
        $i = 1;
        while (StaticPage::where('slug', $data['slug'])->exists()) {
            $data['slug'] = $base . '-' . $i++;
        }

        StaticPage::create($data);
        return redirect()->route('admin.static-pages.index')
                         ->with('success', 'পেজ তৈরি হয়েছে।');
    }

    public function edit(StaticPage $staticPage)
    {
        return view('admin.static_pages.form', ['page' => $staticPage]);
    }

    public function update(Request $request, StaticPage $staticPage)
    {
        $data = $request->validate([
            'title'   => 'required|string|max:200',
            'slug'    => 'nullable|string|max:200',
            'content' => 'nullable|string',
        ]);

        $data['slug']      = Str::slug($data['slug'] ?: $data['title']);
        $data['is_active'] = $request->boolean('is_active', true);

        // ensure unique slug (excluding self)
        $base = $data['slug'];
        $i = 1;
        while (StaticPage::where('slug', $data['slug'])->where('id', '!=', $staticPage->id)->exists()) {
            $data['slug'] = $base . '-' . $i++;
        }

        $staticPage->update($data);
        return redirect()->route('admin.static-pages.index')
                         ->with('success', 'পেজ আপডেট হয়েছে।');
    }

    public function destroy(StaticPage $staticPage)
    {
        $staticPage->delete();
        return back()->with('success', 'পেজ মুছে ফেলা হয়েছে।');
    }
}