File: /home/marketing.cfbon.ru/public_html/app/Http/Controllers/Site/Menu/CategoryController.php
<?php
namespace App\Http\Controllers\Site\Menu;
use App\Http\Controllers\Controller;
use App\Http\Requests\Site\Menu\CategoryRequest;
use App\Models\ProductCategory;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\View\View;
class CategoryController extends Controller
{
    public function index() : View
    {
        $categories = ProductCategory::all();
        return view('site.menu.categories.index', compact('categories'));
    }
    public function create() : View
    {
        return view('site.menu.categories.create');
    }
    public function store(CategoryRequest $request): RedirectResponse
    {
        ProductCategory::create([
            'name' => $request->input('name'),
            'display_order' => $request->input('display_order'),
        ]);
        return redirect()->route('site.menu.categories.index')->with('success', 'Категория успешно добавлена');
    }
    public function edit(string $id) : View
    {
        $category = ProductCategory::findOrFail($id);
        return view('site.menu.categories.edit', compact('category'));
    }
    public function update(CategoryRequest $request, string $id) : RedirectResponse
    {
        $category = ProductCategory::findOrFail($id);
        $category->update($request->validated());
        return redirect()->back()->with('success', 'Категория успешно изменена');
    }
    public function destroy(string $id) : RedirectResponse
    {
        $category = ProductCategory::findOrFail($id);
        $category->delete();
        return redirect()->route('site.menu.categories.index')->with('success', 'Категория успешно удалена');
    }
}