【问题标题】:Laravel eloquent limit queryLaravel 雄辩的极限查询
【发布时间】:2020-03-24 07:00:25
【问题描述】:

我有 3 个表 TAble、TableB 和 TableC。 每个都有 100 万个寄存器。

我有 Laravel 雄辩的查询。

  $list=    TableA::with([
            'TableB',
            'TableC'
        ])
            ->whereIn('field1',['A','B','C'])
            ->where('created_at','>=','2018-01-01') ->orderBy('fieldC', 'ASC')->orderBy('created_at', 'ASC')
            ->get()
            ->take(50) ;

TableA 有 TableB 和 TableC 这样的映射关系。

public function TableB(){
    return $this->belongsTo('TableB', 'fk_id', 'id');
}

public function TableC(){
  return $this->hasMany('TableC');
}

如何执行此查询限制“TableB”和“TableC”中的寄存器数量。 如果我使用 take() 它只会限制最终结果。

【问题讨论】:

  • limit() 将是一个“拍摄”,但由数据库完成

标签: eloquent laravel-4


【解决方案1】:

你想做什么? 如果要分块处理数据,请使用

->chunk(50, function ($data) use ($variable) {
//process
});

如果您想在带有页面的表中显示数据,请使用分页。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-26
    • 2021-07-23
    • 2017-11-11
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多