我正在使用数据表来显示数据库中的数据,但是假设我在数据库中有10万行并运行此查询
public function listCustomers()
{
$customers = DB::select(DB::raw('select * from customers'));
Log::info('Retrieving customers from database.');
return view('customers.list', array('customers' => $customers));
}
永远加载有意义的东西。现在我尝试使用分页功能,但它只显示10行,就是这样。只有一页行可供显示。
public function listCustomers()
{
$customers = DB::table('customers')
->selectRaw('*')
->paginate(10);
Log::info('Retrieving customers from database.');
return view('customers.list', array('customers' => $customers));
}
如何才能获得正确的分页?我看过this topic,但对我来说似乎太复杂了。
在这两种情况下,我都使用此代码在我的数据表中显示数据:
<?php $i = 1; ?>
@foreach ($customers as $customer)
<tr role="row" class="odd">
<?php $i++; ?>
<td>{{$customer->id}}</td>
<td>{{$customer->name}}</td>
<td>{{$customer->surname}}</td>
<td>{{$customer->city}}</td>
@endforeach
答案 0 :(得分:0)
将此添加到您的html
{{ $customers->links() }}
这将帮助您浏览数据库中的其余数据。
答案 1 :(得分:0)
您可以使用此资料包https://packagist.org/packages/acfbentveld/laravel-datatables
$users = DataTables::collect(User::all())->get();
在你的控制器中。它会自动检测数据表是否正在请求新数据。
在你的刀片或js文件中
$(document).ready(function() {
//thats all
$('#datatable').DataTable({
"processing": true, //process it
"serverSide": true, //make it server side
"ajax": location.href //Just get the data from the same url. The package will handle it all
});
} );
当涉及使用分页的关系搜索和排序
时,这非常有用