Laravel与建筑商的雄辩关系

时间:2019-05-20 04:50:18

标签: eloquent eloquent--relationship

在我的Laravel项目中

我有一个Sale关系的payments模型

public function payments(): Relation
{
    return $this->hasMany(Payment::class);
}

现在我想要此功能

private function getPaymentsQuery() 
{
    return $this
            ->payments()
            ->where('a', 1);
}

所以我可以像这样进一步链接

$sale->getPaymentsQuery()->where('b', 1)->get();

这个想法可行,但是getPaymentsQuery函数返回一个类

  

\ Illuminate \ Database \ Eloquent \ Relations \ Relation;

但我希望成为

  

\ Illuminate \ Database \ Eloquent \ Builder

因为您知道,关系也可以作为属性来访问,并且属性可以用于急切的加载中,所以有一天我会出错。

1 个答案:

答案 0 :(得分:0)

对班级进行虚警

  

\ Illuminate \ Database \ Eloquent \ Relations \ Relation;

有一个专门的方法

->getQuery()