Laravel将总体总价值附加到分页结果上

时间:2019-03-19 12:57:51

标签: laravel append

我有一个使用分页的Laravel查询。

我希望能够基于分页返回结果,但还可以获取查询的总体并将其附加到返回中。因此,例如,分页设置为5,但总数可能是20。

$query = Model::paginate(5); 
$queryTotal = $query->total();
$query->append($queryTotal);
return $query;

3 个答案:

答案 0 :(得分:0)

Laravel分页器已经做到了。

您可以看到,在serializing results to JSON处有一个total键,该键代表与该查询匹配的所有行。

您还可以看到分页器提供了一种total方法:

$results->total()

Pagination Docs

中可以找到其他方法

答案 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()函数(例如,如果在刀片文件中使用它)。

希望这会有所帮助!