Laravel 5中,可以使用whereHas
方法结合orderBy
方法来实现根据关联模型的条件进行排序。
whereHas
方法用于筛选具有指定关联关系的模型,可以传入关联关系的名称和一个闭包函数作为参数。闭包函数中可以使用where
方法来添加关联模型的条件。
orderBy
方法用于对查询结果进行排序,可以传入要排序的字段名和排序方式(升序或降序)作为参数。
下面是一个示例代码:
$posts = Post::whereHas('comments', function ($query) {
$query->where('status', 'approved');
})
->orderBy('created_at', 'desc')
->get();
上述代码中,假设有一个Post
模型和一个Comment
模型,它们之间存在一对多的关联关系。我们想要获取所有具有已批准评论的文章,并按照创建时间倒序排序。
在闭包函数中,我们使用where
方法添加了一个条件,只选择status
为approved
的评论。
最后,我们使用orderBy
方法按照created_at
字段进行倒序排序。
推荐的腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云