我們可以獲取 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();
}