Mysql
 sql >> Base de données >  >> RDS >> Mysql

Laravel Eloquent Limit in Relation qui a une sous-relation

Les fonctions take() et limit() ne fonctionneront pas avec un chargement rapide si vous récupérez plusieurs modèles parents à l'aide de get().

Il faut donc faire autrement,

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

Après avoir récupéré $categories , vous pouvez faire une boucle foreach comme ci-dessous,

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

Et en faisant cela, vous obtiendrez 4 contenus par catégorie dans toutes les catégories avec limitedContents .