所以我有表Threads和表注释,我想通过插入一些像comments.created_at这样的最后一个注释来排序线程,我是怎么做的?
$threads = Thread::where('subboaId', $id)
->orderBy('comments.created_at', 'desc')
->get();
尝试了这个,但没有工作,也许我必须加入他们或其他东西
答案 0 :(得分:2)
使用whereHas函数(https://laravel.com/docs/5.1/eloquent-relationships):
首先,您必须在Thread模型中添加关系:
public function comments()
{
return $this->hasMany( Comment::class );
}
然后你可以在你的控制器上使用它:
$threads = Thread::where('subboaId', $id)->whereHas( 'comments', function( $query ){
$query->orderBy( 'created_at', 'desc' );
} )->get();
希望它有所帮助。
答案 1 :(得分:0)
加入他们,试试这个,
$threads = Thread::join('comments', 'comments.id', '=', 'threads.comment_id')
->where('threads.subboaId', $id)
->orderBy('comments.created_at', 'desc')
->get();
我希望这会有助于/带领你。