【发布时间】:2016-12-27 10:00:16
【问题描述】:
这是我为每个聊天获取消息并将它们分组的代码
$query = DB::table('chats');
$otherUserId= $request->input('loadId');
if($otherUserId==0){
$query->join('users as u1', 'u1.id', '=', 'chats.user1_id');
$query->join('users as u2', 'u2.id', '=', 'chats.user2_id');
$query->join('messages', 'messages.chat_id', '=', 'chats.id');
$query->where('chats.user1_id', '=', '{$userId}');
$query->orWhere('chats.user2_id', '=', '{$userId}');
$query->select('messages.chat_id', 'messages.from_id', 'u1.id as user1_id', 'u2.id as user2_id', 'messages.created_at', 'messages.body', 'messages.read', 'u1.name as user1_name', 'u2.name as user2_name', 'u1.picture_url as user1_pic', 'u2.picture_url as user2_pic');
$query->orderBy('messages.created_at ', 'DESC');
$query->groupBy('chat_id');
$messages = $query->paginate(4);
当我运行查询时,结果并不像预期的那样,OrderBy 出现在 group by 之后。我已经尝试了很多,但找不到和解决方案。我也尝试了这个解决方案,但无法使其工作。 Order By before Group By using Eloquent (Laravel)
请帮帮我,我已经浪费了很多时间来解决这个问题。提前感谢您帮助我。
【问题讨论】:
标签: php mysql database laravel laravel-5.2