繁体   English   中英

Laravel用雄辩的联接表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM