我的问题:我需要在简单的api中使用分页,我正在尝试使用laravel进行开发。我正在使用Cursors来做这件事。但即使我的模型返回结果,结果也是空白的。
我的代码:
$newCursor = $groups->last()->id;
$cursor = new Cursor($cursor, $previousCursor, $newCursor, $groups->count());
//dd($cursor);
$groups = new Collection(fractal($groups, new GroupRequestTransformer('filtered')));
$groups->setCursor($cursor);
$data = [
'groups' => $groups,
'cursor' => $cursor
];
$this->setResponseStatus(true, 200, trans('group.filtered'));
return $this->sendResponseData($data);
注意:$groups
具有从模型返回的值。如果我dd($cursor);
,我会
Cursor {#403
#current: "5"
#prev: null
#next: 13
#count: 1
}
所以这似乎很好。但是我作为$data
发送的实际回复是空白的。
"data": {
"groups": {},
"cursor": {}
}
我在这里缺少什么?
答案 0 :(得分:1)
使用fractal的paginator实例来格式化分页集合,不需要使用下面的光标就是他们网站上的示例
use League\Fractal\Resource\Collection;
use League\Fractal\Pagination\IlluminatePaginatorAdapter;
use Acme\Model\Book;
use Acme\Transformer\BookTransformer;
$paginator = Book::paginate();
$books = $paginator->getCollection();
$resource = new Collection($books, new BookTransformer);
$resource->setPaginator(new IlluminatePaginatorAdapter($paginator));
见http://fractal.thephpleague.com/pagination/
或使用laravel-fractal一个方便的包,它支持所有类型的分页和一切。 https://github.com/spatie/laravel-fractal