Laravelde yorum sayısını anasayfada yazdırmak
Merhaba blog tarzı bir şey kodlamaya çalışıyorum.
Post ve comments işlemini yaptım ancak commentsdeki belli ide göre olan satır sayısını anasayfadaki loopun içerisinde nasıl yazdırırım biraz kafam karıştı...
Ufak bir örnek gösterebilecek olan var mı acaba? Şimdiden teşekkürler...
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (4)
$comments = Post::select('posts.*', 'users.name', 'comments.*')
->join('comments', 'comments.post_id', 'posts.id')
->join('users', 'users.id', '=', 'comments.user_id')
->orderBy('comments.created_at', 'DESC')
->withCount('comments')
->get();
Bu şekilde yapabildim çalıştı görünüyor umarım yanlış bir şey yapmamışımdır sonucu buraya ekleyeyim dedim.
$comments = Post::select('posts.*', 'users.name', 'comments.*')
->join('comments', 'comments.post_id', 'posts.id')
->join('users', 'users.id', '=', 'comments.user_id')
->selectRaw('posts.*, count(comments.post_id) as commentcount')
->groupBy('posts.id')
->orderBy('comments.created_at', 'DESC')
->get();
Son olarak bu şekilde çalıştırdım ancak grupladığım için tüm gönderileri post edemiyorum sadece sonuncusunu gösterebiliyorum... Ancak tüm sonuçları göstermem gerekiyor...
@m100 hocam merhaba,
$comments = Comment::select('comments.*', 'posts.title', 'users.name')
->join('posts', 'posts.id', 'comments.post_id')
->join('users', 'users.id', '=', 'comments.user_id')
->orderBy('comments.created_at', 'DESC')
->get();
benim yapım böyle comments tablosundaki satırları posts.idye göre çekip yazdırmam gerekiyor ne yaptıysam başaramadım...