fix: update travel type controller

This commit is contained in:
2026-08-18 08:02:17 +03:30
parent 2b04b84624
commit a31375a20f
@@ -3,9 +3,81 @@
namespace App\Http\Controllers\Admin; namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Http\Requests\TravelTypeStoreRequest;
use App\Http\Requests\TravelTypeUpdateRequest;
use App\Models\TravelType;
use Illuminate\Http\Request; use Illuminate\Http\Request;
class TravelTypeController extends Controller class TravelTypeController extends Controller
{ {
/**
* لیست + جستجو + صفحه‌بندی انواع سفر
*/
public function index(Request $request)
{
abort_unless(auth('admin')->user()->canManageTravelTypes('view'), 403);
$query = TravelType::query();
// جستجو بر اساس عنوان / اسلاگ
if ($request->filled('search')) {
$query->where(function ($q) use ($request) {
$q->where('title', 'like', '%' . $request->search . '%')
->orWhere('slug', 'like', '%' . $request->search . '%');
});
}
// فیلتر وضعیت (1=فعال، 0=غیرفعال)
if ($request->filled('status')) {
$query->where('status', $request->status);
}
$travelTypes = $query->latest()->paginate(10)->withQueryString();
return view('admin.travel_types.index', compact('travelTypes'));
}
public function create()
{
abort_unless(auth('admin')->user()->canManageTravelTypes('create'), 403);
return view('admin.travel_types.create');
}
public function store(TravelTypeStoreRequest $request)
{
abort_unless(auth('admin')->user()->canManageTravelTypes('create'), 403);
TravelType::create($request->validated());
return redirect()->route('admin.travelTypes.index')
->with('success', 'نوع سفر با موفقیت ثبت شد.');
}
public function edit(TravelType $travelType)
{
abort_unless(auth('admin')->user()->canManageTravelTypes('edit'), 403);
return view('admin.travel_types.edit', compact('travelType'));
}
public function update(TravelTypeUpdateRequest $request, TravelType $travelType)
{
abort_unless(auth('admin')->user()->canManageTravelTypes('edit'), 403);
$travelType->update($request->validated());
return redirect()->route('admin.travelTypes.index')
->with('success', 'نوع سفر با موفقیت ویرایش شد.');
}
public function destroy(TravelType $travelType)
{
abort_unless(auth('admin')->user()->canManageTravelTypes('delete'), 403);
$travelType->delete();
return redirect()->route('admin.travelTypes.index')
->with('success', 'نوع سفر با موفقیت حذف شد.');
}
} }