Laravel MySQL orderBy count

Ich benutze Laravel und MySQL und habe eine TabellePos, das einen Beitrag darstellt, in dem Benutzer ihn kommentieren können. Jetzt möchte ich die Beiträge nach der Anzahl der Kommentare für jeden Beitrag in aufsteigender / absteigender Reihenfolge sortieren. Wie mache ich das in Laravel? Ich möchte kein Feld in @ hinzufügPos table, um die Anzahl der Kommentare für jeden Beitrag im Auge zu behalten, da die manuelle Aktualisierung dieses Felds jedes Mal, wenn ein Kommentar oder Kommentar eines Kommentars hinzugefügt / gelöscht wird, mich verrückt macht ...

So erstelle ich mein posts table undBemerkunge Tabelle

Schema::create('posts', function($table) {
    $table->increments('id');
    $table->string('title', 100)->unique();
    $table->string('content', 2000);
    $table->timestamps();
});
Schema::create('comments', function($table) {
    $table->increments('id');
    $table->string('content', 2000);
    $table->unsignedInteger('post_id');
    $table->foreign('post_id')->references('id')->on('posts')->onDelete('cascade')->onUpdate('cascade');
    $table->unsignedInteger('parent_id')->nullable();
    $table->foreign('parent_id')->references('id')->on('comments')->onDelete('cascade')->onUpdate('cascade');
    $table->timestamps();
});

Und so richte ich die Beziehung zwischen Beiträgen und Kommentaren in meinem Beitragsmodell ein:

public function comments() {
    return $this->hasMany('Comment', 'post_id');
}

Und in Kommentarmodell:

public function post() {
    return $this->belongsTo('Post', 'post_id');
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage