php - fetch only X Product Model via eager loading in a ManyToMany Product Category relationship -


i have manytomany relationship between category , product model.

product model :

class product extends model     {         protected $primarykey = 'product_id';          public function categories ()         {             return $this->belongstomany('app\category', 'category_product', 'product_id', 'cat_id');         } } 

and category model :

class category extends model         {             protected $primarykey = 'cat_id';              public function products (){             return $this->belongstomany('app\product','category_product','cat_id','product_id');         }     } 

now , want fetch last 4(for example) products of each category. write :

$categories =   category::with([     'products'  =>  function($query){         $query->select('products.product_id')->orderby('created_at','desc')->take(4);     } ])->get(); 

but not work , return unexpected products count?

how can that?

if want last x number of products per category can try :

category::with(['products' => function($query) {     $query->orderby('updated_at','desc')->take(x); }])->get(); 

this should return collection of categories in should have no more desired number of products per category.

hope helps.


Comments

Popular posts from this blog

Hatching array of circles in AutoCAD using c# -

ios - UITEXTFIELD InputView Uipicker not working in swift -

Python Pig Latin Translator -