首页 文章

Laravel使用雄辩的联接表

提问于
浏览
1

我正在尝试加载最后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 回答

  • 2

    由于您的Comment和Post模型都包含 id ,因此Laravel不知道您要对哪一个进行排序 . 因此,为 orderBy 添加一个表名:

    Comment::with(['post:id,title'])->take($number)->orderBy('comments.id', 'desc')->get();
    

    这里 comments 是你的表/实体的名称,也许是 comment .

相关问题