erhalte ich so etwas wie die Liste von Nachrichten mit der Anzahl der KommentarZählergebnis Kombinieren in Laravel
Artikel beitreten möchten ------------- Kommentar
news1 ------ ---------- 10
news2 ---------------- 2
news3 ---------------- 13
news4 ---------------- 25
Ich weiß, wie man es mit rohen SQL macht, aber kann es nicht mit Laravel machen. laravel kann rohe Abfragen verarbeiten, aber ich möchte sie nicht für die gesamte Abfrage verwenden.
hier ist mein aktueller snipped Code:
$newslist = News::where('status_id', 2)->orderBy('id', 'desc')->skip(0)->take($itemPerLoad)
->join('msuser', 'msuser.id', '=', 'news.user_id')
->select(....)->get();
i setzte Anzahl bei der Auswahl der Methode versucht habe, bekam aber Fehler (mit Kommentaren Join-Tabelle nicht oben geschrieben)
->select('news.id', 'count(mscomment.id) as commented', ...)
, weil ich nicht beitreten es, verwende ich zur Zeit separaten Code, um es zu zählen, und setzen sie ihn auf json Antwort
$commented = Comment::where('news_id', $news->id)->count();
ich denke, es ist nicht gut Weg, um die Zahl zu erhalten, weil es wieder Quest Zählung für jede Schleife
Haben Sie versucht mit ** selectRaw ** wie folgt: '-> selectRaw ('news.id', 'count (mscomment.id) wie kommentiert', ...) '. – TheFallen
es gibt mir diesen Fehler: Argument 2 an Illuminate \ Database \ Query \ Builder übergeben :: selectRaw() muss vom Typ array sein, String gegeben –
Sorry, das ist mein Fehler. Übergeben Sie alle Spalten in einer einzigen Zeichenfolge: '-> selectRaw ('news.id, count (mscomment.id) als Kommentar')' '. – TheFallen