检索上次评论的作者

时间:2017-04-16 01:10:31

标签: laravel

我想检索发布者的姓名 论坛主题中的最后一条评论。 这就是我在PhpMyAdmin所做的工作,因此我得到了正确的值:

select commentaires.auteur 
from commentaires inner join sujets on commentaires.sujet_id = sujets.id
where commentaires.id = (
    select max(commentaires.id)
    from commentaires inner join sujets on commentaires.sujet_id = sujets.id
    where sujets.id = 12
);

我以为使用QueryBuilder来检索值 我想,但我意识到这很复杂.. 这是我的一篇论文:

DB::table('commentaires')->join('sujets', 
'sujets.id','=','commentaires.sujet_id')  
->where(['commentaires.id' => DB::raw('max(commentaires.id')])
->where('sujets.id','=', $unSujet->id)
->value('commentaires.auteur')

或者你会有一个更简单的想法吗? 提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您应该使用Eloquent

Eloquent为连接模型提供great fluent interface。 您将能够通过以下方式访问最新评论:

ForumTopic::find($id)->commentaires()->orderBy('created_at', 'DESC')->first()

您可以在具有公共功能的模型中实现它

<强> ForumTopic.php

public function commentaires(){
    return $this->hasMany(Commentary::class);
}