【发布时间】:2015-10-29 17:33:29
【问题描述】:
我有一个包含以下列的“消息”表
CREATE TABLE `messages` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`fromId` int(11) NOT NULL,
`toId` int(11) NOT NULL,
`message` text NOT NULL,
`status` int(11) NOT NULL,
`device` varchar(100) NOT NULL,
`createdAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=57 DEFAULT CHARSET=latin1;
我正在尝试获取 'toId' = $id 并按 fromId 分组的所有消息。问题是结果上显示的“消息”是第一个,而不是最新的。我尝试通过 createdAt 订购,但它不起作用。
如何在查询和分组结果之前按“createdAt”排序?我想使用 Eloquent 以 laravel 的方式做到这一点。
我的查询:
$chats = Message::with('sender','recipient')
->where('toId',$id)
->orderBy('createdAt')
->groupBy('fromId')
->paginate(10)
【问题讨论】:
-
您能否向我们展示一下您在 Eloquent 中的查询现在是什么样子的?谢谢!
-
是的,我更新了问题。