2

我有收藏:用户、组织、电子邮件。一个用户可以有 1..* 封电子邮件。即便如此,一个组织也可以拥有 1..* 封电子邮件。

没有链接表(这是 NoSQL 原则),这些是我的集合:

用户收藏:

[{'_id': ObjectId("54feabdae75a4f4168b7acd9"), 'name': 'Henri', 'emails': [{'_id': '54feabdae75a4f4168b7acda'}] }]

组织收藏:

[{'_id': ObjectId("54feabdae75a4f4168be24a4"), 'name': 'MyOrg.org', 'emails': [{'_id': '54feabdae75a4f4168b7acda'}] }]

电子邮件收集:

[{ "_id" : ObjectId("54feabdae75a4f4168b7acda"), "email" : "henriabc@gmail.com" }]

我与“用户”模型和“组织”模型的关系:

public function emails() {
    return $this->embedsMany('App\Email');
}

调用急切加载:

public fullUser($id) {
    return User::find($id)->with('emails')->get();
}

但是如何(渴望)用他的电子邮件加载用户?上述方法不会填充电子邮件。

4

1 回答 1

0

用这个:

public fullUser($id) {
    $user = User::find($id);
    $user->emails();
    return $user();
}
于 2015-06-02T06:01:41.057 回答