1

我需要获取 laravel 分页器的结果,但似乎无法正常工作,我正在尝试执行此查询

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

当我尝试打印查询结果时,不会显示结果,而是显示整个 Paginator Laravel 类和其他讨厌的东西。

这是我现在拥有的输出示例

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

4

2 回答 2

2

如果您将它与 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);
}
于 2014-05-23T17:16:11.050 回答
2

当你这样做时:

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

您将获得一个Illuminate\Pagination\Paginator对象,该对象将包含data具有其他属性和方法的数组。如果你传递$usersviewthen 在你的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'];

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

于 2014-05-23T17:17:29.640 回答