fix: update travel type controller
This commit is contained in:
@@ -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', 'نوع سفر با موفقیت حذف شد.');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user