我需要获取 laravel 分页器的结果,但似乎无法正常工作,我正在尝试执行此查询
$products = DB::table('Products')->paginate(5);
当我尝试打印查询结果时,不会显示结果,而是显示整个 Paginator Laravel 类和其他讨厌的东西。
这是我现在拥有的输出示例
我需要获取 laravel 分页器的结果,但似乎无法正常工作,我正在尝试执行此查询
$products = DB::table('Products')->paginate(5);
当我尝试打印查询结果时,不会显示结果,而是显示整个 Paginator Laravel 类和其他讨厌的东西。
这是我现在拥有的输出示例
如果您将它与 Angular 结合使用,您可能需要考虑使用有限的查询而不是 Laravel 的Paginator
,因为您需要做的就是从数据库中返回一组项目。
例如,在您的控制器中(这非常简化):
public function getProducts()
{
$currentPage = (int)Input::get('page') - 1;
$products = DB::table('products')->skip(currentPage*5)
->take(5)
->get();
return Response::json($products);
}
当你这样做时:
$products = DB::table('Products')->paginate(5);
您将获得一个Illuminate\Pagination\Paginator
对象,该对象将包含data
具有其他属性和方法的数组。如果你传递$users
给view
then 在你的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'];
这将是一组对象(模型)。