paginate函数laravel 4的问题

时间:2014-05-23 15:45:32

标签: laravel paginator

我需要获得laravel paginator的结果但看起来不起作用,我试图做这个查询

$products = DB::table('Products')->paginate(5);

当我尝试打印查询结果时,没有显示结果,而是向我展示整个Paginator Laravel Class和其他令人讨厌的东西。

这是我现在的输出示例

http://paste.ubuntu.com/7506086/

2 个答案:

答案 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'];

这将是一个对象(模型)数组。