首页 > 解决方案 > Laravel:如何使用 hasMany 字段对集合进行排序

问题描述

我有五张桌子:

details有领域idname并且与贡献有很多关系。

purpose有领域idname并且与贡献有很多关系。

period有领域idname并且与贡献有很多关系。

user有领域idname并且与贡献有很多关系。

贡献有id,amount和 "belongsTo" 关系user_id, detail_id, purpose_id, period_id

现在,我想获取所有contributions特定的user(按 过滤user_id),然后按period.namedetail.name和对结果进行排序purpose.name

有什么建议么?

该问题已被确定为Laravel orderBy 在关系上的可能重复项。但是有一个基本的区别。

在那里,用户与评论以及用户与帖子之间存在关系。但是在我的情况下,用户和详细信息/目的/周期表之间没有任何关系。

<?php
class User
{
    public function comments()
    {
        return $this->hasMany('Comment');
    }
}

在这种情况下是可能的,但同样的类比,在我的例子中,类 User 没有任何 details() 函数来获取 hasMany 关系。我的用户只与贡献表有关系,而贡献表与细节目的等表有关系。

希望我能够澄清差异。

标签: laraveleloquent-relationship

解决方案


推荐阅读