با سلام و خسته نباشید خدمت استاد گرامی
یک مشکلی توی نمایش کامنت های پست ها است و اون اینکه نه تنها کامنت هایی که در پاسخ یک پست بدون تایید نمایش داده میشن بلکه در انتها همون کامنتها این بار با در نظر گرفتن تایید شدن یا نشدن دوباره تکرار میشن
البته این رو عرض کنم که من برای ارسال کامنت شرط کاربر بودن رو برداشتم و هرکسی میتونه حتی بدون ثبت نام کردن در سایت هم کامنت برای پست بفرسته
ممنون میشم اگر کمکم کنید
کدهای قسمت های مختلف رو اینجا براتون میزارم
دستورات froeach برای نمایش کامنت ها
@foreach($comments as $item)
<div class="card mt-2">
<div class="card-header">
{{$item->fullname}}
</div>
<div class="card-body">
<p class="text-muted">موضوع : {{ $item->subject }}</p>
<p>{{ $item->comment }}</p>
<a href="#comment" onclick="setReply({{$item->id}})" class="btn btn-success">پاسخ دادن</a>
@foreach($item->childs as $reply)
<div class="card mt-2">
<div class="card-header">
{{ $reply->fullname }}
</div>
<div class="card-body">
<p class="text-muted">موضوع : {{ $reply->subject }}</p>
<p>{{ $reply->comment }}</p>
</div>
</div>
@endforeach
</div>
</div>
@endforeach
دستورات بخش بازیابی پست و کامنت ها
public function blogDetail($language ,$id){
$categories=Category::orderby('created_at' , 'asc')->where('status' , 1)->get();
$blogDetail=Blog::with('user')->findOrFail($id);
$blog_items=Blog::orderby('id' , 'desc')->take(3)->get();
$seo=Seo::orderby('id' , 'desc')->take(1)->first();
// $comments=Comment::where('blog_id' , $id)->where('status' , 1)->where('parent_id' , null)->get();
// $commentsReply=Comment::with('child')->where('blog_id' , $id)->where('status' , 1)->where('parent_id' , true)->get();
$comments =Comment::with('childs')->where('blog_id' , $id)->where('status' , 1)->get();
return view('front.blog-details' , compact('blogDetail' , 'blog_items' , 'seo' , 'categories' , 'comments' ));
}
دستورات بخش کلاس کامنت
public function showStatus(){
if($this->status===0) return 'تایید نشده';
else return 'تایید شده';
}
public function blog(){
return $this->belongsTo(Blog::class , 'blog_id');
}
public function childs(){
return $this->hasMany(Comment::class , 'parent_id' , 'id');
}
البته مشکل تکرار شدن کامنت رو با گذاته دستور whereNull('parent_id') حل کردم
اما مشکل تایید نمایش کامنت های پاسخ بدون گرفتن تایید همچنان پابرجاست
سلام دوست من
این سوال رو ببینید
متوجه شده بودم ایراد داره میخواستم آنلاین کردم کار رو یکی دوتا ویدیو بزارم و این مشکلم حل کنم وقت نشده چون درگیر آپدیت یه دوره دیگه بودم اما این کار رو کنید مشکل حل میشه
ممنون استاد
البته من بخاطر اینکه فعلا کار راه بیفته در قسمت نمایش کامنت های پاسخ یک دستور شرطی قرار دادم که هر کامنتی که فیلد status اون عدد 1 هست رو نمایش بده که به صورت موقت بد نبود
ممنونم از راهنماییتون
خواهش میکنم