/home2/mshostin/carnival.ms-hostingladz.com/app/Http/Controllers/FeatureController.php
<?php
namespace App\Http\Controllers;
use App\Models\Feature;
use App\Models\Category;
use Exception;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class FeatureController extends Controller
{
public function index()
{
$features = Feature::with('category')->get();
return view('dashboard.admin.features.index', compact('features'));
}
public function create()
{
$categories = Category::all();
return view('dashboard.admin.features.create', compact('categories'));
}
public function store(Request $request)
{
$request->validate([
'category_id' => 'required|exists:categories,id',
'name' => 'required|string|max:255',
'status' => 'required|integer|in:0,1',
]);
try {
Feature::create($request->all());
return redirect()->route('features.index')->with('success', 'Feature created successfully.');
} catch (Exception $ex) {
return redirect()->back()->with('error', $ex->getMessage());
}
}
public function show($id)
{
$feature = Feature::with('category')->findOrFail($id);
return view('dashboard.admin.features.show', compact('feature'));
}
public function edit($id)
{
$feature = Feature::findOrFail($id);
$categories = Category::all();
return view('dashboard.admin.features.edit', compact('feature', 'categories'));
}
public function update(Request $request, $id)
{
try {
$validatedData = $request->validate([
'category_id' => 'required|exists:categories,id',
'name' => 'required|string|max:255',
'status' => 'required|integer|in:0,1',
]);
$feature = Feature::findOrFail($id);
$feature->update($validatedData);
return redirect()->route('features.index')->with('success', 'Feature updated successfully.');
} catch (Exception $ex) {
return redirect()->back()->with('error', $ex->getMessage());
}
}
public function destroy($id)
{
try {
$feature = Feature::findOrFail($id);
$feature->delete();
return redirect()->route('features.index')->with('success', 'Feature deleted successfully.');
} catch (Exception $ex) {
return redirect()->back()->with('error', $ex->getMessage());
}
}
}