Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Laravel Eloquent Limit in Beziehung, die Unterbeziehung hat

Die Funktionen take() und limit() funktionieren nicht mit Eager Loading, wenn Sie mit get() mehr als ein übergeordnetes Modell abrufen.

Also müssen Sie es anders machen,

$categories = Category::with('contents')->get();

Nach dem Abrufen von $categories , können Sie die foreach-Schleife wie unten ausführen,

$contents = [];
foreach($categories as $category){
   $category->limitedContents = $category->contents()->with('languages')->limit(4);
}

Und dadurch erhalten Sie 4 Inhalte pro Kategorie in allen Kategorien mit limitedContents .