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

namespace App\Http\Controllers\Admin;

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

class MenuController extends Controller
{
    public function index()
    {
        $items = MenuItem::orderBy('sort_order')->get();
        return view('admin.menu.index', compact('items'));
    }

    public function store(Request $request)
    {
        $data = $request->validate([
            'label'  => 'required|string|max:100',
            'url'    => 'required|string|max:500',
            'target' => 'in:_self,_blank',
        ]);
        $data['sort_order'] = MenuItem::max('sort_order') + 1;
        $data['is_active']  = true;
        $data['target']     = $data['target'] ?? '_self';

        MenuItem::create($data);
        return back()->with('success', 'মেনু আইটেম যোগ করা হয়েছে।');
    }

    public function update(Request $request, MenuItem $item)
    {
        $data = $request->validate([
            'label'     => 'required|string|max:100',
            'url'       => 'required|string|max:500',
            'target'    => 'in:_self,_blank',
            'is_active' => 'boolean',
        ]);
        $item->update([
            'label'     => $data['label'],
            'url'       => $data['url'],
            'target'    => $data['target'] ?? '_self',
            'is_active' => $request->boolean('is_active'),
        ]);
        return back()->with('success', 'মেনু আইটেম আপডেট হয়েছে।');
    }

    public function destroy(MenuItem $item)
    {
        $item->delete();
        return back()->with('success', 'মেনু আইটেম মুছে ফেলা হয়েছে।');
    }

    public function reorder(Request $request)
    {
        foreach ($request->input('order', []) as $i => $id) {
            MenuItem::where('id', $id)->update(['sort_order' => $i + 1]);
        }
        return response()->json(['success' => true]);
    }
}