thinkphp5 关联预载入怎么用
1、关联查询的预查询载入功能,主要解决了N+1次查询的问题,这里举一个例子,查询3个结果,会进行4次查询。

2、如果使用关联预查询功能,对于一对一关联来说,只有一次查询,对于一对多关联的话,就可以变成2次查询,有效提高性能。

3、也可以支持嵌套预载入,例如:

4、V5.0.7版本以上,支持使用数组方式定义嵌套预载入,例如下面的预载入要同时获取用户的Profile关联模型的Phone、Job和Img子关联模型数据:

5、如果要指定属性查询,可以使用:

6、V5.0.4+版本开始一对一关联预载入支持两种方式:JOIN方式(一次查询)和IN方式(两次查询),如果要使用IN方式关联预载入,在关联定义方法中添加

7、有些情况下,需要根据查询出来的数据来决定是否需要使用关联预载入,当然关联查询本身就能解决这个问题,因为关联查询是惰性的,不过用预载入的理由也很明显,性能具有优势。
延迟预载入仅针对多个数据的查询,因为单个数据的查询用延迟预载入和关联惰性查询没有任何区别,所以不需要使用延迟预载入。
如果你的数据集查询返回的是数据集对象,可以使用调用数据集对象的load实现延迟预载入:

8、如果你的数据集查询返回的是数组,系统提供了一个load_relation助手函数可以完成同样的功能。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:103
阅读量:114
阅读量:72
阅读量:189
阅读量:79