Красноречивое отношение Laravel к Builder

В моем проекте 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;

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

\ Освещение \ База данных \ Красноречивый \ Строитель

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


person Yevgeniy Afanasyev    schedule 20.05.2019    source источник


Ответы (1)


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

\ Illuminate \ Database \ Eloquent \ Relations \ Relation;

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

->getQuery()
person Yevgeniy Afanasyev    schedule 20.05.2019