我需要获得laravel paginator的结果但看起来不起作用,我试图做这个查询
$products = DB::table('Products')->paginate(5);
当我尝试打印查询结果时,没有显示结果,而是向我展示整个Paginator Laravel Class和其他令人讨厌的东西。
这是我现在的输出示例
答案 0 :(得分:2)
如果您将它与Angular结合使用,您可能需要考虑使用limited queries而不是Laravel的Paginator
,因为您需要做的就是从数据库中返回一系列项目。
例如,在您的Controller中(这非常简化):
public function getProducts()
{
$currentPage = (int)Input::get('page') - 1;
$products = DB::table('products')->skip(currentPage*5)
->take(5)
->get();
return Response::json($products);
}
答案 1 :(得分:2)
执行此操作时:
$products = DB::table('Products')->paginate(5);
您将获得一个Illuminate\Pagination\Paginator
对象,这将包含具有其他属性和方法的data
数组。如果您将$users
传递给view
,然后在view
中,您可以循环$users
打印出用户模型,最后您可以打印出分页链接。
例如:
@foreach($products as $product)
{{ $product->username }}
{{ $product->email }}
@endforeach;
{{ $products->links() }}
要打印出查询结果,您可以尝试这样做:
$products->getItems();
如果您想将结果作为json
传递给您的客户side/js
,那么您可以尝试这样做:
return $products; // it'll be a json string
在客户端,当解析为对象时,你会得到类似的东西:
Object {total: 10, per_page: 5, current_page: 1, last_page: 2, from: 1…}
current_page: 1
data: Array[5]
from: 1
last_page: 2
per_page: 5
to: 5
total: 10
__proto__: Object
要访问数据,您可以使用以下内容:
yourObject.data; // or yourObject['data'];
这将是一个对象(模型)数组。