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

有两个名为“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

http://img2.mukewang.com/61a0929f00014fbd02590460.jpg

如您所见,单个文档可以有多个事务 (1)、(2)。在这些交易中,我只需要一个,带有最后一个时间戳。


慕田峪7331174
浏览 151回答 2
2回答

三国纷争

您应该将数组变成一个集合,然后created_at按 排序,最后得到排序数组的第一个结果。collect($this->artData)->orderBy('created_at', 'Desc')->first()

米琪卡哇伊

如果您访问该Transaction属性,您实际上会从数据库中检索模型,在此之前,您可以通过将关系作为函数而不是属性调用来进一步缩小具有附加约束的查询的范围。这应该可以解决问题:$this->arData = $this->Transaction()->where('sender', '=', session('contragent_id'))->orderByDesc('created_at')->first();请注意,通过最后的->first()方法调用,您将获得一个模型实例,然后您可以提取需要保存的任何值$this->arData,因为您没有指定它应该包含哪个值。
打开App,查看更多内容
随时随地看视频慕课网APP