147 lines
2.6 KiB
PHP
147 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');
|
|
|
|
}
|
|
|
|
|
|
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','پرواز حذف شد');
|
|
|
|
}
|
|
}
|