美文网首页
Laravel预加载

Laravel预加载

作者: fireinme | 来源:发表于2017-11-30 16:35 被阅读0次

当通过属性访问 Eloquent 关联时,该关联数据会被「延迟加载」。意味着该关联数据只有在你使用属性访问它时才会被加载。
例如

$books = App\Book::all();

foreach ($books as $book) {
    echo $book->author->name;
}

这样将执行N+1步查询:
1次:查询出所有书N本,
N次:每本书查询一次作者

预加载的话

$books = App\Book::with('author')->get();

foreach ($books as $book) {
    echo $book->author->name;
}

只执行两部

select * from books

select * from authors where id in (1, 2, 3, 4, 5, ...)


预加载的方式

加载多个关联
  $books = App\Book::with('author', 'publisher')->get();

加载嵌套关联
    $books = App\Book::with('author.contacts')->get();

筛选加载结果
      $users = App\User::with(['posts' => function ($query) {
           $query->where('title', 'like', '%first%');
           }])->get();

延迟预加载
    $books = App\Book::all();

     if ($someCondition) {
          $books->load(['author' => function ($query) {
             $query->orderBy('published_date', 'asc');
      }]);
}
 

相关文章

  • Laravel预加载

    当通过属性访问 Eloquent 关联时,该关联数据会被「延迟加载」。意味着该关联数据只有在你使用属性访问它时才会...

  • Laravel数据预加载

    一、场景当一个文章展示页面需要展示评论时候,在文章模型中写关联方法取出该文章所有的评论,在展示的时候实际不需要获取...

  • laravel中with()方法,has()方法和whereHa

    with() with()方法是用作“渴求式加载”的,那主要意味着,laravel将会伴随着主要模型预加载出确切的...

  • 预加载与智能预加载 (VIA)

    预加载与智能预加载(iOS) 网络与性能 预加载无限滚动列表Threshold惰性加载智能预加载 总结 前两次的分...

  • 图片预加载

    背景 利用图片的预加载技术获得更好的用户体验 什么是有序预加载和无序预加载 jQuery插件的写法 图片预加载,预...

  • laravel性能优化

    laravel性能优化的方法,分为四个点: 1.自带命令 2.debugbar 3.预加载 4.慢sql查询 自带...

  • laravel Eloquent:关联

    laravel 官方文档这一页很长,讲了很多东西,大概分为四个部分, 关联,关联查询,预加载,操作关联模型,更新时...

  • js-事件委托&图片预加载

    事件委托 图片预加载 吸顶条 图片预加载

  • 收藏的博客链接

    1 - 粒子动画效果2 - 预加载与智能预加载策略

  • JS

    JS 懒加载,预加载 概念:懒加载也叫延迟加载:JS图片延迟加载,延迟加载图片或符合某些条件时才加载某些图片。预加...

网友评论

      本文标题:Laravel预加载

      本文链接:https://www.haomeiwen.com/subject/aeivbxtx.html