雄辩的关系,模型的链接(Laravel 5.4)

Posted

技术标签:

【中文标题】雄辩的关系,模型的链接(Laravel 5.4)【英文标题】:Eloquent Relationships, linking of models (Laravel 5.4) 【发布时间】:2017-10-04 07:33:35 【问题描述】:

我有点困惑 Laravel 5.4 中雄辩的关系是如何工作的。 我有一个与我的用户模型有“hasMany”关系的学校模型:

public function users()

    return $this->hasMany('App\User');

虽然用户不需要链接到学校,所以我没有在我的用户模型上放置 belongsTo(学校)函数。

例如,当我创建用户时,我应该如何将用户链接到学校以及如何将特定学校中的所有用户拉到一个视图中?

【问题讨论】:

我将从这里开始:laravel.com/docs/5.4/eloquent-relationships。这些文档很好地介绍了基本概念。 【参考方案1】:

如果用户只能属于一所学校,最直接的方法是在users 表中添加一个school_id 列。由于它不是必需的,因此您可以允许它为空。这将允许您运行 $school->users 来检索给定学校的用户列表。

我还建议将 belongsTo 关系添加到 User 模型中,这样您就可以使用 $user->school 在适用时检索用户的学校。对某些用户来说它为空也没关系。

【讨论】:

我无法让“$school->users”工作。我试过 $school = School::find(1); $学校->用户;并将其传递给紧凑型视图,但它不起作用。我收到此错误:“HasRelationships.php 第 487 行中的 FatalThrowableError:找不到类 'App\Users'”-我为我的用户模型添加了 belongsTo(学校)。 它是否在您的代码中某处定义为App\Users?我怀疑应该是App\User(单数)。 是的,我在学校关系中输错了“用户”。我很累,我的坏! :S

以上是关于雄辩的关系,模型的链接(Laravel 5.4)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Laravel 雄辩关系中添加多个条件

Laravel 5.6 |雄辩的一对多关系

laravel 雄辩的关系 3 模型

Laravel 雄辩模型如何从关系表中获取数据

如何从 hasManyThrough 雄辩关系返回 Laravel 中的单个模型

Laravel - 节省雄辩的关系