如何获取并显示多对多关系表中的最后一行值

时间:2018-11-10 10:01:03

标签: eloquent laravel-5.7

我的两个表MemberDeposit一对多关系,一个成员在Deposit表中有多个存款,我想显示存款的最后记录我打电话给所有会员或一个会员时的桌子。

这是我的Member

1.id,
2.name,
3.phone,
4.account_no,
5.ac_open_date,
6.ac_close_date,
7.status,
8........

我的Deposit

1.meber_id,
2.deposit_date,
3.deposit_amount,
4.total_amount,
5..........

我的控制器代码

$member = Member::with(['Deposit'=>function($query){$query->select('*')->latest('deposit_date')->limit(1);}])->where('status','ready')->get();

如果我返回$ member变量,那么请显示我的方面数据。但是当我以这种方式在我的刀片文件中显示它时...

刀片部分

<td>{{ $member->name }}</td>
 <td>{{ $member->account_no }}</td>
 <td>{{ $member->phone }}</td>
<td>{{ $member->deposit->total_amount}}</td>

当我调用Deposit模型以显示到deposit表的最后一行记录时,然后显示错误。

  

“此集合实例上不存在属性[total_amount]。(查看:C:\ xampp \ htdocs ........

我该怎么办。请帮助我任何人。

2 个答案:

答案 0 :(得分:0)

尝试{{ $member->deposit->first()->total_amount}}

$member->deposit返回该成员的所有存款的集合,即使只有一个。

答案 1 :(得分:0)

我了解到,到目前为止,您为会员的每笔交易更新了total_amount并具有“存款总额”,如果这样,我建议为Member表添加新属性并将其保存在该值上,因此您可以轻松获得它,并且可以在需要时进行更新。