首页 文章

如何检索laravel中一对多关系表的最后一条记录

提问于
浏览
0

我在 one to many 关系中有两个名为 MemberDeposit 的表 .

一个 memberdeposit 表中有 multiple saving amounts . 每个 member 的每一个数量的 deposit 表将计算并存储在'Deposit'表的'total_amount'列中 .

我必须通过 branch_idpost-id 搜索 Member 并显示它's last ' total_amount ' of '存款'表

我怎样才能做到这一点?

我的 Member 表:

id
branch_id
post_id
name
phone
address

我的存款表:

id
member_id
deposit_date
amount
total_amount

我的控制器:

$members = Member::where('branch_id',$request->branch_id)->where('post_id',$request->post_id)->get();

刀片模板:

@foreach($members as member)
  <td>{{$member->name}}</td>
  <td>{{$member->address}}</td>
  <td>{{$member->deposit->total_amount}}</td> // i want to display here last deposit table total_amount of every member
 @endforeach

当我在Laravel刀片文件中执行此操作时,存款表的所有关系记录都以JSON格式显示 .

我怎么解决这个问题?

1 回答

  • 0

    您可以使用 withCount() 并对其进行修改:

    $members = Member::withCount(['deposits as total_amount' => function($query) {
            $query->select('total_amount')->latest('deposit_date')->limit(1);
        }])
        ->where('branch_id', $request->branch_id)
        ->where('post_id', $request->post_id)
        ->get();
    
    {{ $member->total_amount }}
    

相关问题