Laravel / Eloquent动态$附加在SUM()上 - 查询相关模型

时间:2015-03-11 13:25:03

标签: laravel laravel-4 orm eloquent

虽然我在寻找答案时做了一些研究,但找不到与我的情况相符的任何东西。 如果我错了,请纠正我。

我在使用Laravel 4.2的应用程序中遇到以下问题:

我有一个会员模型和一个MemberLedger。会员Ledger持有任何用户发生的任何货币交易。

class Member extends \Eloquent {

    public function memberLedger() {
        return $this->hasMany("MemberLedger","member_id");
    }

}

class MemberLedger extends \Eloquent {

    public function scopeBalance($query) {
        return $query->select(DB::raw("SUM(member_ledger.balance) AS balance"));
    }

}

我的观点是,我实际上希望有时仅将平衡属性添加为成员模型的属性,但不适用于我在会员上应用的任何查询。

我为“会员” - 模型创建了此片段。

protected $appends = ["ledgerBalance"];

public function getLedgerBalanceAttribute($member) {
    return MemberLedger::balance()->where("member_id","=",$this->id)->first()->balance;
}

无论如何,对我来说,对于较小的数据库似乎没问题,但是当我在整个Members-Table上运行REST'S索引()时(并且每当我查找一个成员时计算余额)我相信这可能会产生很多不必要的开销。

您对只能选择在会员余额上附加此类查询的做法是什么?

谢谢你, 安德烈亚斯

0 个答案:

没有答案