首页 > 解决方案 > Laravel- 从 hasMany 中获取第一个元素?

问题描述

我正在尝试获取每个类别的第一个元素。

Category Class 

public function product()
{
    return $this->hasMany(Product::class, 'category_id', 'id');
}

public function first_product()
{
   return $this->product()->limit(1);
}

这是我的查询

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

我得到了第一个产品只有类别的第一个元素。为什么?

标签: laraveleloquent

解决方案


试试这个hasOne()来获取单个数据

public function first_product()
{
    return $this->hasOne(Product::class);
}

然后

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

推荐阅读