Laravel Красноречивый Отношение к Строителю - PullRequest
0 голосов
/ 20 мая 2019

В моем проекте 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 возвращает класс

\ Осветить \ Database \ Eloquent \ Отношения \ Relation;

но я хочу, чтобы оно было

\ Осветить \ Database \ Eloquent \ Builder

Потому что, как вы знаете, к Relation можно также обращаться как к свойству, а свойство можно использовать для быстрой загрузки, и это однажды приведет к ошибкам.

1 Ответ

0 голосов
/ 20 мая 2019

ложная тревога класс

\ Осветить \ Database \ Eloquent \ Отношения \ Relation;

имеет метод только для этого

->getQuery()
...