<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\Tag;
use Illuminate\Http\Request;
use Illuminate\Support\Str;
class TagController extends Controller
{
public function index()
{
$tags = Tag::withCount('products')->latest()->paginate(30);
return view('admin.tags.index', compact('tags'));
}
public function store(Request $request)
{
$data = $request->validate([
'name' => 'required|string|max:255|unique:tags,name',
]);
$data['slug'] = Str::slug($data['name']);
Tag::create($data);
return redirect()->route('admin.tags.index')->with('success', 'Tag created.');
}
public function update(Request $request, Tag $tag)
{
$data = $request->validate([
'name' => 'required|string|max:255|unique:tags,name,' . $tag->id,
]);
$data['slug'] = Str::slug($data['name']);
$tag->update($data);
return redirect()->route('admin.tags.index')->with('success', 'Tag updated.');
}
public function destroy(Tag $tag)
{
$tag->delete();
return redirect()->route('admin.tags.index')->with('success', 'Tag deleted.');
}
}