2016-06-16 15 views
3

Ich habe zwei Tabellen: Kommentare und CommentRatingsLaravel 4: Sorting Kommentare nach, wie viele ‚Likes‘ sie haben

Was ich versuche zu tun bekommen Kommentare sondern um sie durch wie viele mag sie in den CommentRatings Tisch, aber ich kann es einfach nicht herausfinden und dachte, ich würde hier mehr Glück haben

fragen Also hier meine Kommentare Tabelle: enter image description here

hier ist die CommentRatings Tabelle:

enter image description here

Idealerweise benötigen ich in der Lage sein, es zu sortieren, indem Sie, wie viele mag es hiervon sind aber buchstäblich keine Ahnung haben

  $comments = Comment::where('url', Request::url()) 
      ->take($limit) 
      ->get() 
+0

Vielleicht, wenn Sie eine Datenbankansicht erstellen, können Sie es einfacher tun. Dann können Sie Ihre Ansicht einem Laravel-Modell zuordnen. –

Antwort

3

ich mit Laravel 4 nicht aktiv entwickeln, aber ich nahm einen Stich an es. Hoffentlich wird es in 4 funktionieren. Getestet in Laravel 5, aber lassen Sie mich wissen, ob dies einen Fehler verursacht.

$comments = Comment::where('url', Request::url()) 
     ->select(DB::raw('comments.*, count(*) as `comments_count`')) 
     ->join('comment_ratings', 'comments.id', '=', 'comment_ratings.comment_id') 
     ->groupBy('id') 
     ->orderBy('comments_count', 'desc') 
     ->take($limit); 
+0

funktioniert wie ein Leckerbissen! Vielen Dank – Ben