dongxieyi9115 2018-12-18 21:10
浏览 10

Eloquent:基于访问者属性的查询

I have an Account model which hasMany transactions. A transaction belongsTo a TransactionType (could be either "payment" or "charge"). Now I want to query all accounts with a negative balance, i.e. where the sum of the Transactions of type "payment" <= sum of Transactions of type charge. What is the most efficient way to do this with Laravel Eloquent? Is this scalable? I tried to query on the accessor attribute, but this did not work.

I created an accessor as follows:

public function getBalanceAttribute()
{
    return $this->payments->sum('amount') - $this->charges->sum('amount');
}

In my Account model I have:

/**
* 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);
}
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥20 怎么用dlib库的算法识别小麦病虫害
    • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
    • ¥15 java写代码遇到问题,求帮助
    • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
    • ¥15 有了解d3和topogram.js库的吗?有偿请教
    • ¥100 任意维数的K均值聚类
    • ¥15 stamps做sbas-insar,时序沉降图怎么画
    • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
    • ¥15 关于#Java#的问题,如何解决?
    • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算