gpt4 book ai didi

php - mysql/laravel组查询结果

转载 作者:行者123 更新时间:2023-11-30 22:58:08 24 4
gpt4 key购买 nike

我正在构建一个基于 laravel 4 的网络应用程序,它使用一个非常基本的消息传递系统,这是表结构:

messages table
--------------
id int pri
from_user int fk (users table)
to_user int fk (users table)
content text
created_at datetime
updated_at datetime

我正在尝试检索一个数组,其中包含按 messages.from_user 和 messages.to_user 分组的所有消息,显示根据场景发送或接收的最后一条消息。

这是我一直在玩的代码

$id = Auth::user()->id; 

$messages = DB::table('messages')
->join('users', 'users.id', '=', 'messages.from_user')
->select(
'users.id AS from_user_id',
'users.first_name AS from_user_name',
'users.profile_img AS from_user_img',
'users.alias AS from_user_alias'
)
->where('messages.to_user', '=', $id)
->groupBy('messages.from_user')
->get();

foreach ($messages as $single) {
$last = parent::where('messages.to_user', '=', $single->from_user_id)
->orWhere('messages.from_user', '=', $single->from_user_id)
->orderBy('created_at', 'DESC')
->first();
}

// return view make with messages

此代码在用户收到消息时工作正常,但作为发件人,在收到回复之前我无法看到对话。

我还在数据库中查询每条分组消息,我不太确定这是否会影响性能,因为我是 mysql 网络应用程序的新手。

提前致谢,干杯

最佳答案

http://laravel.com/docs/eloquent 

像对 parent 那样对消息表尝试这种技巧!

关于php - mysql/laravel组查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25333330/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com