feat:complete comments in tourShow

This commit is contained in:
2026-08-17 18:20:38 -07:00
parent c070681830
commit 914c1aedbd
3 changed files with 55 additions and 7 deletions
+1 -1
View File
@@ -29,7 +29,7 @@ class CommentController extends Controller
$data = $request->validated(); $data = $request->validated();
Comment::create([ Comment::create([
$relation, ...$relation,
'user_id' => auth()->id(), 'user_id' => auth()->id(),
'guest_name' => auth()->check() ? null : $data['guest_name'], 'guest_name' => auth()->check() ? null : $data['guest_name'],
'guest_email' => auth()->check() ? null : $data['guest_email'], 'guest_email' => auth()->check() ? null : $data['guest_email'],
+14 -1
View File
@@ -2,6 +2,7 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Enums\CommentStatus;
use App\Enums\TourStatus; use App\Enums\TourStatus;
use App\Models\Tour; use App\Models\Tour;
use Illuminate\Http\Request; use Illuminate\Http\Request;
@@ -20,8 +21,20 @@ class TourController extends Controller
return view('tours.index', compact('tours')); return view('tours.index', compact('tours'));
} }
public function show() public function show(Tour $tour)
{ {
abort_if($tour->status !== TourStatus::ENABLE->value, 404);
$tour->increment('views');
$tour->load(['file',
'comments' => function ($query) {
$query->where('status', CommentStatus::APPROVED)
->with('user')
->orderByDesc('created_at');
},]);
return view('tours.show', compact('tour'));
} }
} }
+40 -5
View File
@@ -1,11 +1,13 @@
<div class="listing-item"> <div class="listing-item">
<h4 class="mb-3">بررسی‌ها</h4>
<h4 class="mb-3">بازخوردها</h4>
<div class="listing-review"> <div class="listing-review">
<h5>بازخوردها</h5>
@forelse($flight->comments as $comment) @forelse($comments as $comment)
<div class="listing-review-item"> <div class="listing-review-item">
<div class="listing-review-author"> <div class="listing-review-author">
@@ -19,6 +21,7 @@
<div class="listing-review-author-info"> <div class="listing-review-author-info">
<div> <div>
<h6> <h6>
@if($comment->user) @if($comment->user)
{{ $comment->user->first_name }} {{ $comment->user->first_name }}
@@ -32,6 +35,7 @@
<i class="far fa-clock"></i> <i class="far fa-clock"></i>
{{ $comment->created_at->toJalali()->format('Y/m/d') }} {{ $comment->created_at->toJalali()->format('Y/m/d') }}
</span> </span>
</div> </div>
</div> </div>
@@ -40,13 +44,21 @@
<p>{{ $comment->comment }}</p> <p>{{ $comment->comment }}</p>
</div> </div>
@empty @empty
<p>هنوز بازخوردی ثبت نشده است. اولین نفری باشید که نظر می‌دهد.</p>
<p>
هنوز بازخوردی ثبت نشده است.
اولین نفری باشید که نظر می‌دهد.
</p>
@endforelse @endforelse
</div> </div>
<div class="listing-review-form"> <div class="listing-review-form">
<h4>نظر بدهید</h4> <h4>نظر بدهید</h4>
@error('success') @error('success')
@@ -56,11 +68,21 @@
@enderror @enderror
<form action="{{ route('flights.comments', $flight) }}" method="POST"> @php
$commentRoute = $type === 'flight'
? route('flights.comments', $item)
: route('tours.comments', $item);
@endphp
<form action="{{ $commentRoute }}" method="POST">
@csrf @csrf
@guest @guest
<div class="form-group mb-3"> <div class="form-group mb-3">
<input <input
type="text" type="text"
name="guest_name" name="guest_name"
@@ -68,9 +90,12 @@
placeholder="نام شما*" placeholder="نام شما*"
value="{{ old('guest_name') }}" value="{{ old('guest_name') }}"
> >
</div> </div>
<div class="form-group mb-3"> <div class="form-group mb-3">
<input <input
type="email" type="email"
name="guest_email" name="guest_email"
@@ -78,10 +103,14 @@
placeholder="ایمیل شما*" placeholder="ایمیل شما*"
value="{{ old('guest_email') }}" value="{{ old('guest_email') }}"
> >
</div> </div>
@endguest @endguest
<div class="form-group"> <div class="form-group">
<textarea <textarea
name="comment" name="comment"
class="form-control" class="form-control"
@@ -89,11 +118,17 @@
rows="5" rows="5"
placeholder="نظر خود را بنویسید*" placeholder="نظر خود را بنویسید*"
>{{ old('comment') }}</textarea> >{{ old('comment') }}</textarea>
</div> </div>
<button class="theme-btn" type="submit"> <button class="theme-btn" type="submit">
نظر بدهید نظر بدهید
</button> </button>
</form> </form>
</div> </div>
</div> </div>