小编Ser*_*gio的帖子

按组排序使用Eloquent(Laravel)

我有一个包含以下列的"消息"表

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;
Run Code Online (Sandbox Code Playgroud)

我正在尝试获取所有消息,其中'toId'= $ id并按fromId进行分组.问题是结果上显示的"消息"是第一个,而不是最新的.我尝试通过createdAt订购,但它不起作用.

在查询和分组结果之前,如何通过"createdAt"订购?我想用Eloquent以laravel方式做到这一点.

我的查询:

$chats = Message::with('sender','recipient')
        ->where('toId',$id)
        ->orderBy('createdAt')
        ->groupBy('fromId')
        ->paginate(10)
Run Code Online (Sandbox Code Playgroud)

php laravel eloquent

7
推荐指数
4
解决办法
3万
查看次数

标签 统计

eloquent ×1

laravel ×1

php ×1