Files
hatame.andarza09/app/Http/Controllers/Admin/FlightController.php
T

148 lines
2.6 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests\Admin\FlightStoreRequest;
use App\Models\Flight;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Storage;
class FlightController extends Controller
{
public function index(Request $request)
{
$flights = Flight::query()
->applySearch($request->all())
->filterType($request->type)
->sort($request->sort)
->latest()
->paginate(4);
return view('admin.flights.index', compact('flights'));
}
public function create()
{
return view('admin.flights.create');
}
public function store(FlightStoreRequest $request)
{
DB::beginTransaction();
try {
$data = $request->validated();
if ($request->hasFile('image')) {
$data['image'] = $request
->file('image')
->store('flights','public');
}
$data['created_by'] = auth('admin')->id();
Flight::create($data);
DB::commit();
return redirect()
->route('admin.flights.index')
->with('success','پرواز ثبت شد');
} catch(\Exception $e) {
DB::rollBack();
dd($e->getMessage());
}
}
public function edit(Flight $flight)
{
return view('admin.flights.edit',compact('flight'));
}
public function update(FlightStoreRequest $request, Flight $flight)
{
DB::beginTransaction();
try {
$data = $request->validated();
if ($request->hasFile('image')) {
if($flight->image){
Storage::disk('public')
->delete($flight->image);
}
$data['image'] = $request
->file('image')
->store('flights','public');
}
$flight->update($data);
DB::commit();
return redirect()
->route('admin.flights.index')
->with('success','پرواز ویرایش شد');
}catch(\Exception $e){
DB::rollBack();
dd($e->getMessage());
}
}
public function destroy(Flight $flight)
{
if($flight->image){
Storage::disk('public')
->delete($flight->image);
}
$flight->delete();
return back()
->with('success','پرواز حذف شد');
}
}