为了账号安全,请及时绑定邮箱和手机立即绑定

如何从数据库表中获取所有记录,其中对方 ID 等于从带有最后时间戳的会话中接收到的值?

如何从数据库表中获取所有记录,其中对方 ID 等于从带有最后时间戳的会话中接收到的值?

PHP
慕田峪7331174 2021-11-26 15:53:41
有两个名为“table_A”和“table_B”的表。table_A 包含文档记录。table_B 包含交易记录。创建新文档时,会在 table_A 和 table_B 中创建新记录。$this->arData = $this->Transaction->where( 'sender' , '=' , session('contragent_id') )->orderBy('created_at', 'desc')->get()->toArray();我得到以下数据:数据屏幕 img如您所见,单个文档可以有多个事务 (1)、(2)。在这些交易中,我只需要一个,带有最后一个时间戳。
查看完整描述

2 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

您应该将数组变成一个集合,然后created_at按 排序,最后得到排序数组的第一个结果。

collect($this->artData)->orderBy('created_at', 'Desc')->first()


查看完整回答
反对 回复 2021-11-26
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

如果您访问该Transaction属性,您实际上会从数据库中检索模型,在此之前,您可以通过将关系作为函数而不是属性调用来进一步缩小具有附加约束的查询的范围。

这应该可以解决问题:

$this->arData = $this->Transaction()->where('sender', '=', session('contragent_id'))->orderByDesc('created_at')->first();

请注意,通过最后的->first()方法调用,您将获得一个模型实例,然后您可以提取需要保存的任何值$this->arData,因为您没有指定它应该包含哪个值。


查看完整回答
反对 回复 2021-11-26
  • 2 回答
  • 0 关注
  • 125 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信