[英]Laravel join table using eloquent
我正在尝试加载最后5条带有相关帖子的评论,仅从帖子中选择ID和标题。
在第一种情况下,我决定从帖子中获取所有列:
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”选项必须存在一些问题。
有什么办法解决吗? 这意味着仅从“帖子”表中获取选定的列,并从最后一个表中获取结果?
谢谢。
由于Comment和Post模型都包含id
,因此Laravel不知道您要对哪个进行排序。 因此,在您的orderBy
添加一个表名:
Comment::with(['post:id,title'])->take($number)->orderBy('comments.id', 'desc')->get();
这里的comments
是您的表/实体的名称,也许是comment
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.