У меня есть модель учетной записи, которая hasMany
транзакций.Транзакция belongsTo
a TransactionType (может быть либо «оплата», либо «оплата»).Теперь я хочу запросить все счета с отрицательным сальдо, т. Е. Где сумма транзакций типа «оплата» <= сумма транзакций типа сбора.Какой самый эффективный способ сделать это с Laravel Eloquent?Это масштабируемое?Я попытался выполнить запрос атрибута доступа, но это не сработало. </p>
Я создал средство доступа следующим образом:
public function getBalanceAttribute()
{
return $this->payments->sum('amount') - $this->charges->sum('amount');
}
В моей модели учетной записи у меня есть:
/**
* Get all of the accounts's payments.
*/
public function payments()
{
return $this->hasMany('App\Transaction')->whereTransactionTypeId(1);
}
/**
* Get all of the account's charges.
*/
public function charges()
{
return $this->hasMany('App\Transaction')->whereTransactionTypeId(2);
}