feat: implement flight show blade and comments flight

This commit is contained in:
2026-08-17 13:08:49 -07:00
parent b14da01731
commit 087070b621
5 changed files with 167 additions and 881 deletions
@@ -0,0 +1,40 @@
<?php
namespace App\Http\Controllers;
use App\Http\Requests\CommentPostRequest;
use App\Models\Comment;
use App\Models\Flight;
use App\Models\Tour;
class CommentController extends Controller
{
public function storeFlight(CommentPostRequest $request, Flight $flight)
{
$this->store($request, ['flight_id' => $flight->id]);
return back()->with('success', 'نظر شما با موفقیت ثبت شد.');
}
public function storeTour(CommentPostRequest $request, Tour $tour)
{
$this->store($request, ['tour_id' => $tour->id]);
return back()->with('success', 'نظر شما با موفقیت ثبت شد.');
}
private function store(CommentPostRequest $request, array $relation)
{
$data = $request->validated();
Comment::create([
...$relation,
'user_id' => auth()->id(),
'guest_name' => auth()->check() ? null : $data['guest_name'],
'guest_email' => auth()->check() ? null : $data['guest_email'],
'comment' => $data['comment'],
'status' => 0,
]);
}
}
+54
View File
@@ -0,0 +1,54 @@
<?php
namespace App\Http\Requests;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest;
class CommentPostRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, ValidationRule|array<mixed>|string>
*/
public function rules(): array
{
$isGuest = !auth()->check();
return [
'rating' => [
'required',
'integer',
'between:1,5',
],
'comment' => [
'required',
'string',
'min:3',
'max:1000',
],
'guest_name' => [
$isGuest ? 'required' : 'nullable',
'string',
'max:191',
],
'guest_email' => [
$isGuest ? 'required' : 'nullable',
'email',
'max:191',
],
];
}
}