我有一个使用分页的Laravel查询。
我希望能够基于分页返回结果,但还可以获取查询的总体并将其附加到返回中。因此,例如,分页设置为5,但总数可能是20。
$query = Model::paginate(5);
$queryTotal = $query->total();
$query->append($queryTotal);
return $query;
答案 0 :(得分:0)
Laravel分页器已经做到了。
您可以看到,在serializing results to JSON处有一个total
键,该键代表与该查询匹配的所有行。
您还可以看到分页器提供了一种total
方法:
$results->total()
中可以找到其他方法
答案 1 :(得分:0)
$query = Model::paginate(5);
return $query;
您可以使用来访问总数
{{ $query->total() }}
有关更多信息,请阅读Paginator instance
答案 2 :(得分:0)
paginate函数返回一个LengthAwarePaginator
对象。根本不可能向该对象添加另一个字段。
最好的选择是手动创建一个新集合,在其中将LengthAwarePaginator
与新添加的数据合并。
一个例子是:
$query = Model::paginate(5);
$addition = collect(['totalResult' => $query->total()]);
$queryData = $addition->merge($query);
return $queryData;
自然地,如果仅返回LengthAwarePaginator
对象,则可以简单地调用total()函数(例如,如果在刀片文件中使用它)。
希望这会有所帮助!