我想从每个类别中提取 2 个产品。
Product.php
class Product extends Model
{
protected $table = 'products';
}
类别.php
class Category extends Model {
protected $table = 'categories';
}
控制器
public function index() {
$products = Product::all();
return Product::latest()->take(5)->get();
}
答案 0 :(得分:1)
这应该获取每个类别的前两个产品:
// Get all categories
$categories = Category::all();
//Create an empty array to store our product IDs
$prodIds = array();
// Extract the first 2 product IDs in each category
foreach ($categories as $category) {
$prodIds[] = $category->products->take(2)->pluck('id');
}
// Fetch products from their IDs
$products = Product::findMany($prodIds);
编辑:我上面的回答
答案 1 :(得分:1)
Product.php
class Product extends Model
{
protected $table = 'products';
public function Category()
{
return $this->belongsTo(Product::class);
}
}
注意:在类别模型中导入您的类别模型
类别.php
class Category extends Model {
protected $table = 'categories';
public function Product()
{
return $this->hasMany(Product::class);
}
}
注意:在产品模型中导入您的类别模型
控制器
public function index() {
return Category::with('Product'=>funcation($obj){
return $obj->take(2);
})->latest()->take(5)->get();
}
答案 2 :(得分:0)
试试这个
$products = Product::latest()->take(2)->with('categories')->get();