【问题标题】:How do I access relation of a relation in laravel eloquent如何在 laravel eloquent 中访问关系的关系
【发布时间】:2018-02-01 15:55:13
【问题描述】:

我有一个用户、组、组配置文件、组成员、表。

关系:

users belongs to many groups,
groups belongs to many users (name of function is groupMembers),
group has one groupProfile

我想用群组资料和群组成员数显示某个用户的群组。

目前,我有这个:

$userGroups = UserView::findOrFail($userId)
                                    ->groups()
                                    ->get();

我也有这个:它返回我想要的一切,除了它不是用户特定的事实。 (它返回所有组)

        $userGroups = GroupView::with(['groupProfile'])
            ->withCount('groupMembers as groupMemberCount')
            ->get();

【问题讨论】:

  • 显示模型GroupGroup ProfileGroup Members是如何关联的
  • 我同意 Jeune 的观点,我们需要更多信息。但是,为了回答一般问题,有几种方法可以访问关系的关系。最简单的是点符号。类似于 Users::with('Groups.GroupMembers')->get() - 但就像 Jeune 所说,我们需要查看 ORM。

标签: laravel eloquent


【解决方案1】:
$userGroups = UserView::findOrFail($userId)
    ->groups()
    ->with(['groupProfile'])
    ->withCount('groupMembers as groupMemberCount')
    ->get()

Laravel 关系返回一个查询构建器(如果您调用函数而不是属性),这意味着您可以对模型集合执行任何操作,也可以对相关模型集合执行相同操作。

【讨论】:

    猜你喜欢
    • 2020-07-03
    • 2017-02-17
    • 2015-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-09
    • 1970-01-01
    • 2017-04-28
    相关资源
    最近更新 更多