sql >> Database >  >> RDS >> Mysql

Laravel welsprekende limiet in relatie met subrelatie

take() en limit() functies zullen niet werken met gretig laden als u meer dan één bovenliggend model ophaalt met get().

Dus je moet het op een andere manier doen,

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

Na het ophalen van $categories , je kunt een foreach-lus maken zoals hieronder,

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

En door dit te doen krijgt u 4 inhoud per categorie in alle categorieën met limitedContents .



  1. Behoefte om records uit de MySQL-database op datum alleen uit een datetime-veld te halen

  2. Oracle subquery grappig

  3. MySQL - Hoe krijg ik een lijst met waarden in tabel A die niet in tabel B voorkomen?

  4. PostgreSQL Connection Pooling:Deel 1 – Voor- en nadelen