我们可以获取 hasMany 关系的一个实例

在我们的 AppServiceProvider.php 中

public function boot()
{
  HasMany::macro('toHasOne', function() {
      return new HasOne(
          $this->query,
          $this->parent,
          $this->foreignKey,
          $this->localKey
      );
  });
}

假设我们有商店模式,我们正在获取已购买的产品列表。假设我们拥有 Shop 模态的所有购买关系

public function allPurchased()
{
    return $this->hasMany(Purchased::class);
}

public function lastPurchased()
{
    return $this->allPurchased()->latest()->toHasOne();
}