zozero 5年前

修改理由:

将“懒加载”改为“预加载”

相关信息:


此投稿已在 5年前 合并。

内容修改:

红色背景 为原始内容

绿色背景 为新增或者修改的内容

OldNewDifferences
769769}
770770```
771771
772 动态属性就像「懒加载」,也就是说当你确实会使用到它们的使用,它会自动进行加载。由于这一特性,开发者经常会使用到 [懒加载](#eager-loading) 去实现那些在获取到模型后必须要加载的关联模型。懒加载对 那些在模型上定了关联关系 SQL 查询上有了性能的提升,它们对 SQL 查询语句的执行次数有了明显的减少(也就是 n + 1性能问题)。
 772动态属性就像「预加载」,也就是说当你确实会使用到它们的使用,它会自动进行加载。由于这一特性,开发者经常会使用到 [预加载](#eager-loading) 去实现那些在获取到模型后必须要加载的关联模型。预加载对 那些在模型上定了关联关系 SQL 查询上有了性能的提升,它们对 SQL 查询语句的执行次数有了明显的减少(也就是 n + 1性能问题)。
773773
774774<a name="querying-relationship-existence"></a>
775775### 查询关联关系是否存在
 
866866echo $posts[0]->pending_comments_count;
867867```
868868<a name="eager-loading"></a>
869 ## 加载
870 
871 当通过动态属性的方法去加载关联数据时,它已经是在 「加载」 了。也就是说,当你在未使用到该关联数据时,它其实是并没有查询数据的。然而, 当你在查询父级模型时, Eloquent 允许渴求式加载关联数据,渴求式加载避免了 N + 1 查询问题。为了说明 N + 1 的查询问题,思考 `Book` 模型关联了 `Auhtor` :
 869## 加载
 870
 871当通过动态属性的方法去加载关联数据时,它已经是在 「加载」 了。也就是说,当你在未使用到该关联数据时,它其实是并没有查询数据的。然而, 当你在查询父级模型时, Eloquent 允许渴求式加载关联数据,渴求式加载避免了 N + 1 查询问题。为了说明 N + 1 的查询问题,思考 `Book` 模型关联了 `Auhtor` :
872872
873873```php
874874<?php
 
965965```
966966
967967<a name="lazy-eager-loading"></a>
968 ### 加载
 968### 加载
969969
970970有可能你还希望在模型加载完成后在进行渴求式加载。举例来说,如果你想要动态的加载关联数据,那么 `load` 方法对你来说会非常有用:
971971