我有一个表格Users个,Conversations,Messages个,所有我需要的是获得对话列表,其中最后一条消息只属于特定用户在Laravel口才

Users

id name
1 User 1
2 User 2

Conversation

id name
1 Conversation 1
2 Conversation 2
3 Conversation 3

Messages

id user_id conversation_id text created_at
1 1 1 hi 2022-23-12 19:33:00
1 2 1 hi 2022-23-12 19:34:00
1 2 2 hello 2022-23-12 19:35:00
1 1 2 hello 2022-23-12 19:36:00

我需要的是,如果我想要获得用户(ID:1)的对话列表,它只需要显示我的对话1(ID:1),因为用户1(ID:1)写了关于此对话的最后一条消息,等等...

感谢您的回复

我try 了很多东西,比如LeftJoin和WHERE条件,也try 了WHERE Exist不起作用

推荐答案

如果您的关系设置正确,则可以执行以下操作:

$user = User::find(1);
$user->messages()
    ->latest()
    ->first()
    ->conversation;

https://laravel.com/docs/9.x/queries#latest-oldest

Php相关问答推荐

Laravel 11发送邮箱时奇怪的未定义数组键名称

Laravel通过(扩展FormRequest类)方法验证表单请求

如何在WordPress中为特定自定义帖子类型自定义URL struct

未在moodle上运行的计划任务

WooCommerce在store 页面上显示兼容多语言的产品属性

Laravel关系-为用户获取属于组织的所有团队

如何删除Foreach语句中的重复值?

添加登录:需要app.yaml仍然允许所有拥有Google帐户的人访问

根据WooCommerce Cart小计阈值自动应用优惠券

WooCommerce在购物车项目中复制产品而不增加产品数量

如何配置我的.env文件以在laravel的一个项目中连接两个不同的数据库?

对 WooCommerce 购物车和 checkout 中显示的运输方式进行排序

invalid_grant 和无效的 JWT 签名

Google Drive API 服务->文件->get('root') 失败并显示找不到文件. (范围问题?)

计算添加到购物车的点击次数并将其显示在 WooCommerce 管理产品列表中

将图像作为 PHP post 响应发送到浏览器

后退按钮不起作用 laravel ajax crud

WooCommerce - 调用功能ID不正确.不应直接访问订单属性

同一页面上多个组件的 Livewire 分页问题

password_verify 在 PHP 7.4 中有效,但在 PHP 8.2 中无效