虽然我在寻找答案时做了一些研究,但找不到与我的情况相符的任何东西。 如果我错了,请纠正我。
我在使用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索引()时(并且每当我查找一个成员时计算余额)我相信这可能会产生很多不必要的开销。
您对只能选择在会员余额上附加此类查询的做法是什么?
谢谢你, 安德烈亚斯