如何在Laravel中使用get()之后的限制和偏移量

问题描述 投票:1回答:1

我想在与数据库的第一个连接中获取所有记录,然后获取那些记录的数量。

$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个回答
1
投票

$journeyItems是一个集合,因此请使用skiptakeoffsetlimit是查询生成器方法。

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

或者,您可以使用slice

$journeyItems = $journeyItems->slice($start, $limit);
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.