【问题标题】:How to use limit and offset after get() in Laravel如何在 Laravel 中 get() 后使用限制和偏移量
【发布时间】:2020-07-27 05:32:42
【问题描述】:

我想获取第一次连接到数据库的所有记录,然后获取这些记录的数量。

$journeyItems = JourneyItem::whereIn('as_journey_id', $journeyIds->toArray())
    ->whereHas('content', function (Builder $query) {
        $query->whereIn('as_content_type_id', [6, 7]);
    })->get();
$totalRecords = $journeyItems->count(); // count=15
$journeyItems = $journeyItems->offset($start)
    ->limit($limit);

dd(journeyItems); // Error 

Illuminate\Database\Eloquent\Collection::offset 不存在作为 结果:没用

如何编辑?

我猜下面的方法不是正确的方法

           $journeyItems = JourneyItem::whereIn('as_journey_id', $journeyIds->toArray())
                ->whereHas('content',function(Builder $query) {
                    $query->whereIn('as_content_type_id', [ 6, 7]);
                })
                ->offset($start)
                ->limit($limit)
                ->get();
            $totalRecords = JourneyItem::whereIn('as_journey_id', $journeyIds->toArray())
                ->whereHas('content',function(Builder $query) {
                    $query->whereIn('as_content_type_id', [ 6, 7]);
                })
                ->count();

【问题讨论】:

标签: php laravel eloquent laravel-7


【解决方案1】:

$journeyItems 是一个集合,所以使用skiptakeoffsetlimit 是查询构建器方法。

$journeyItems = $journeyItems->skip($start)->take($limit);

或者,您可以使用slice

$journeyItems = $journeyItems->slice($start, $limit);

【讨论】:

    猜你喜欢
    • 2019-12-25
    • 2016-06-09
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 2016-09-19
    • 2018-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多