无修改备注

修改理由:
相关信息:
- 类型:文档文章
- 文章: 模型关联
- 文档: 《Laravel 5.8 中文文档(5.8)》
此投稿已在 5年前 合并。
内容修改:
Old | New | Differences |
---|---|---|
1 | ||
2 | 1 | # Eloquent: 关联 |
3 | 2 | |
4 | 3 | - [简介](#introduction) | … | … |
264 | 263 | |
265 | 264 | return $this->belongsToMany('App\Role', 'role_user', 'user_id', 'role_id'); |
266 | 265 | |
267 | ||
266 | ||
268 | 267 | #### 定义反向关联 |
269 | 268 | |
270 | 269 | 要定义多对多的反向关联, 你只需要在关联模型中调用 `belongsToMany` 方法。我们在 `Role` 模型中定义 `users` 方法: | … | … |
523 | 522 | } |
524 | 523 | } |
525 | 524 | |
526 | ||
525 | ||
527 | 526 | |
528 | 527 | <a name="polymorphic-relationships"></a> |
529 | 528 | ## 多态关联 | … | … |
805 | 804 | <a name="querying-relations"></a> |
806 | 805 | ## 查询关联 |
807 | 806 | |
808 | 由于 Eloquent 关联的所有类型都通过方法定义,你可以调用这些方法 | |
807 | 由于 Eloquent 关联的所有类型都通过方法定义,你可以调用这些方法,而无需真实执行关联查询。另外,所有 Eloquent 关联类型用作 [查询构造器](/docs/{{version}}/queries),允许你在数据库上执行 SQL 之前,持续通过链式调用添加约束。 | |
809 | 808 | |
810 | 809 | 例如,假设一个博客系统的 `User` 模型有许多关联的 `Post`模型: |
811 | 810 | … | … |
845 | 844 | // |
846 | 845 | } |
847 | 846 | |
848 | 动态 | |
849 |
| |
850 | ||
847 | 动态属性是「懒加载」的,这意味着它们仅在你真实访问关联数据时才被载入。因此,开发者经常使用 [预加载](#eager-loading) 预先加载那些他们确知在载入模型后将访问的关联。对载入模型关联中必定被执行的 SQL 查询而言,预加载显著减少了查询的执行次数。 | |
848 | ||
849 | ||
851 | 850 | |
852 | 851 | <a name="querying-relationship-existence"></a> |
853 | 852 | ### 查询已存在的关联 | … | … |
1028 | 1027 | |
1029 | 1028 | > {note} 在约束预加载时,不能使用 `limit` 和 `take` 查询构造器方法。 |
1030 | 1029 | |
1031 | ||
1030 | ||
1032 | 1031 | <a name="lazy-eager-loading"></a> |
1033 | 1032 | ### 预加载 |
1034 | 1033 | … | … |
1275 | 1274 | |
1276 | 1275 | $user = App\User::find(1); |
1277 | 1276 | |
1278 | $user->roles()->updateExistingPivot($roleId, $attributes); | |
1277 | $user->roles()->updateExistingPivot($roleId, $attributes); | |
1279 | 1278 | |
1280 | 1279 | <a name="touching-parent-timestamps"></a> |
1281 | 1280 | ## 更新父级时间戳 |