You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 6中两种ORM数据查询方式的执行时机是否存在差异?

Laravel 6中两种ORM关联调用的执行时机区别

在Laravel 6的ORM关联查询中,$user->follows和$user->follows()的执行时机有明显区别,具体如下:

  • $user->follows(属性调用)
    这是延迟加载(懒加载)模式,数据库查询会在首次访问该属性时触发。比如你先获取了$user对象,之后在代码或视图中第一次用到$user->follows时,Laravel才会执行关联查询获取数据,并且会把结果缓存到$user对象中,后续再次访问该属性不会重复发起数据库请求。

  • $user->follows()(方法调用)
    调用这个方法会直接返回一个查询构建器实例,不会立即执行数据库查询。你可以在这个实例上继续追加查询条件(例如$user->follows()->where('status', 'active')->limit(10)),只有当你调用get()、first()、count()这类触发查询的方法时,才会真正执行数据库操作。如果仅调用$user->follows()而不执行收尾方法,不会产生任何数据库请求。

若参考的是「向视图传递数据的时间线方法」:

  • 使用$user->follows时,查询会在视图中首次使用该属性的时刻执行;
  • 使用$user->follows()->get()时,查询会在控制器中调用get()方法的时刻执行,之后将结果传递给视图。

内容的提问来源于stack exchange,提问作者AHMED KAMAL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 00:15:44