我正在尝试加载最后5条评论,相关帖子只选择帖子中的ID和 Headers .
在第一种情况下,我决定从帖子中获取所有列:
Comment::with(['post'])->take(5)->orderBy('id', 'desc')->get();
它工作正常 .
但是,当我尝试只获得两列(“id,title”)时,不会添加任何帖子 .
Comment::with(['post:id,title'])->take($number)->orderBy('id', 'desc')->get();
我做了一个测试,当我删除“orderBy('id','desc')”然后又恢复了 .
Comment::with(['post:id,title'])->take($number)->get();
因此必须在“orderBy”选项中遇到一些问题 .
有什么方法可以解决它吗?这意味着只从“posts”表中选择选定的列并从最后一个订单结果?
谢谢 .
1 回答
由于您的Comment和Post模型都包含
id
,因此Laravel不知道您要对哪一个进行排序 . 因此,为orderBy
添加一个表名:这里
comments
是你的表/实体的名称,也许是comment
.