0

在我的 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\Builder

因为如您所知,Relation 也可以作为属性访问,并且属性可以在预加载中使用,这总有一天会给我带来错误。

4

2 回答 2

0

就我而言:

QueryBuilder::for($category->products()->getQuery())->get();
于 2022-01-11T10:13:44.677 回答
0

虚惊一场

\照亮\数据库\雄辩\关系\关系;

有一个专门的方法

->getQuery()
于 2019-05-20T04:55:54.793 回答