获取集合的总数



使用skiptake后,如何从查询中获得总共的记录?

代码工作:

$records = Model::where('active', 1)
->skip(($page -1 ) * $max)
->take($max);
// List of records
$data = $records->get()
//Total of all records including the skip records
$total = $records->paginate()->total();

我想要这种方式,但代码不工作:

$records = Model::where('active', 1)
->skip(($page -1 ) * $max)
->take($max)->get();
//Not Working 
$total = $records->paginate()->total();
//Not Working 
$total = $records->total();
//Not Working wrong result
$total = $records->count();

如何获取集合中的所有总记录?

直接在您的模型上使用paginate()方法:

$records = Model::where('active', 1)->paginate($recordsPerPage);

这将返回一个LengthAwarePaginator实例,它有很多有用的方法:

https://laravel.com/api/7.x/Illuminate/Contracts/Pagination/LengthAwarePaginator.html

$records->total()$records->perPage()

在第一个示例中,您的调用paginate((位于Query生成器上。。。(在你做之前->get(((

在第二个例子中,paginate((调用在集合上,在您使用->get((检索结果之后

$records在两者中是不同的,首先是查询生成器,其次是集合

尝试这个

$records = Model::where('active', 1)
->skip(($page -1 ) * $max)
->take($max)->get();
$total = count($records);

相关内容

  • 没有找到相关文章

最新更新