在 Eloquent 中获取所有相关字段到相关字段

米凯卢斯科夫

我有这个数据库结构:

数据库结构

classroom_user 是 Elqouent 多对多枢轴。

用户.php :

public function classrooms() {
        return $this->belongsToMany(ClassRoom::class, 'classroom_user', 'classroom_id', 'user_id');
    }

ClassRoom.php :

public function users()
{
    return $this->belongsToMany(User::class, 'classroom_user', 'user_id', 'classroom_id');
}

我有一个$user并想编写 Eloquent 方法,该方法可以让所有至少在其中一个教室中的用户都$user在。类似$user->classrooms->users. 但这是错误的Property [users] does not exist on this collection instance.我怎样才能做到这一点?

卡米洛

我认为你可以这样做:

$users = User::whereHas('classrooms', function($query) {
    $query->whereHas('users', function($query) {
        $query->where('id',  auth()->user()->id);
    });
})->get();

您可以将其存储为User模型中的范围

public function scopeClassmatesOf($query, $user)
{
    $query->whereHas('classrooms', function($query) use($user) {
        $query->whereHas('users', function($query) use($user) {
            $query->where('id',  $user->id);
        });
    })
}

然后从控制器调用它,如:

$user = auth()->user();

$users = User::classmatesOf($user)->get();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Laravel Eloquent:在Eloquent中获取联接表的ID字段

来自分类Dev

如何使用 Laravel Eloquent 从具有许多相关表的查询中检索所有站点?

来自分类Dev

在Eloquent中获取和更新最新的相关模型

来自分类Dev

从 eloquent 模型的相关表中获取格式化的属性

来自分类Dev

Laravel 4和Eloquent:检索所有记录和所有相关记录

来自分类Dev

laravel-eloquent-获取相关模型特定列的总和

来自分类Dev

如何使用Laravel Eloquent获取相关城市的国家/地区名称

来自分类Dev

Laravel Eloquent:获取相关表的值而不是外键

来自分类Dev

获取与 Eloquent Builder 相关的第一个元素

来自分类Dev

使用关系选择 Laravel Eloquent 中的字段

来自分类Dev

在Laravel和Eloquent中更新相关模型(外键)

来自分类Dev

Laravel Eloquent-在查询结果中包含相关列

来自分类Dev

如何在Laravel Eloquent中更新相关模型

来自分类Dev

相关模型 eloquent laravel 中的自定义查询

来自分类Dev

使用 Eloquent 从相关表外键中检索值

来自分类Dev

使用Laravel / Eloquent订购相关模型

来自分类Dev

Laravel Eloquent:如何订购相关模型的结果?

来自分类Dev

Eloquent是否处理相关实体的缓存?

来自分类Dev

用Eloquent查询相关表数据

来自分类Dev

MySQL 到 Eloquent 查询

来自分类Dev

如何从与一对一字段相关的两个模型中获取所有对象的列表

来自分类Dev

如何在django中获取相关模型的所有字段而不仅仅是id

来自分类Dev

Eloquent 中的 SQL

来自分类Dev

Laravel 5.4 Eloquent 不保存某些字段

来自分类Dev

Eloquent:从 whereHas 块中选择字段失败

来自分类Dev

在解析中获取所有相关的类

来自分类Dev

在具有特定字段值的模型中获取对象,或者在相关模型中不获取对象

来自分类Dev

Laravel Eloquent:仅在模型类中重命名字段

来自分类Dev

Laravel Eloquent:仅在模型类中重命名字段

Related 相关文章

  1. 1

    Laravel Eloquent:在Eloquent中获取联接表的ID字段

  2. 2

    如何使用 Laravel Eloquent 从具有许多相关表的查询中检索所有站点?

  3. 3

    在Eloquent中获取和更新最新的相关模型

  4. 4

    从 eloquent 模型的相关表中获取格式化的属性

  5. 5

    Laravel 4和Eloquent:检索所有记录和所有相关记录

  6. 6

    laravel-eloquent-获取相关模型特定列的总和

  7. 7

    如何使用Laravel Eloquent获取相关城市的国家/地区名称

  8. 8

    Laravel Eloquent:获取相关表的值而不是外键

  9. 9

    获取与 Eloquent Builder 相关的第一个元素

  10. 10

    使用关系选择 Laravel Eloquent 中的字段

  11. 11

    在Laravel和Eloquent中更新相关模型(外键)

  12. 12

    Laravel Eloquent-在查询结果中包含相关列

  13. 13

    如何在Laravel Eloquent中更新相关模型

  14. 14

    相关模型 eloquent laravel 中的自定义查询

  15. 15

    使用 Eloquent 从相关表外键中检索值

  16. 16

    使用Laravel / Eloquent订购相关模型

  17. 17

    Laravel Eloquent:如何订购相关模型的结果?

  18. 18

    Eloquent是否处理相关实体的缓存?

  19. 19

    用Eloquent查询相关表数据

  20. 20

    MySQL 到 Eloquent 查询

  21. 21

    如何从与一对一字段相关的两个模型中获取所有对象的列表

  22. 22

    如何在django中获取相关模型的所有字段而不仅仅是id

  23. 23

    Eloquent 中的 SQL

  24. 24

    Laravel 5.4 Eloquent 不保存某些字段

  25. 25

    Eloquent:从 whereHas 块中选择字段失败

  26. 26

    在解析中获取所有相关的类

  27. 27

    在具有特定字段值的模型中获取对象,或者在相关模型中不获取对象

  28. 28

    Laravel Eloquent:仅在模型类中重命名字段

  29. 29

    Laravel Eloquent:仅在模型类中重命名字段

热门标签

归档