Files
airline-agency/app/Http/Controllers/FlightController.php
T

60 lines
1.9 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Enums\FlightStatus;
use App\Http\Requests\Flight\FlightCommentStoreRequest;
use App\Models\Comment;
use App\Models\Flight;
use Illuminate\Http\Request;
class FlightController extends Controller
{
public function index(Request $request)
{
$sort = $request->query('sort', 'default');
$title = 'پروازها';
$flights = Flight::with(['airline', 'origin_airport.city', 'airport.city'])
->where('status', FlightStatus::AVAILABLE)
->filterFrom($request->input('from-destination'))
->filterTo($request->input('to-destination'))
->filterDepartureDate($request->input('journey-date'))
->applySort($sort)
->paginate(4)
->withQueryString();
return view('flights.index', compact('title', 'flights', 'sort'));
}
public function show(Flight $flight)
{
$title = 'جزئیات پرواز';
return view('flights.show' , compact('title' , 'flight'));
}
public function commentStore(FlightCommentStoreRequest $request, Flight $flight)
{
try {
Comment::create([
'flight_id' => $flight->id,
'user_id' => auth()->id(),
'parent_id' => $request->parent_id,
'guest_name' => auth()->check() ? null : $request->guest_name,
'guest_email' => auth()->check() ? null : $request->guest_email,
'content' => $request->content,
'status' => 0,
]);
return back()->with('success', 'نظر شما با موفقیت ثبت شد.');
} catch (\Exception $e) {
// return back()
// ->withInput()
// ->with('error', 'ثبت نظر با خطا مواجه شد.');
dd($e->getMessage());
}
}
}