【发布时间】:2015-10-22 09:32:34
【问题描述】:
我不能再使用 paginate() 方法了,因为我需要为我的集合中的每个元素添加一个额外的属性。 结果是我在渲染时得到了正确的分页,但它总是在每个页面上显示所有元素。
public function allPaginate($perPage)
{
$initialCollection = $this->model->orderBy('created_at', 'desc')->get();
// adding slug to my collection for every item
$initialCollection->each(function ($item) {
if(! isset($item->slug))
{
$slug = Str::slug($item->title);
$item->slug = $slug;
}
});
$result = new Paginator($initialCollection, count($initialCollection), $perPage);
$result->setPath(Request::url());
return $result;
}
在我刚刚使用这个之前:
$paginator = $this->model->orderBy('created_at', 'desc')->paginate($perPage);
我的数据库中有 3 个元素,我想每页显示 2 个。这是两个版本的转储文件。
应该是(使用 ->paginate()),集合中有 2 个项目
LengthAwarePaginator {#362 ▼
#总数:3
#lastPage: 2
#items:收藏{#364 ▼
#items: array:2 [▼
0 => News {#365 ▶}
1 => News {#366 ▶}
]
}
#perPage: 2
#currentPage: 1
#path: "http://jv.app/nl/nieuws/"
#查询:[]
#fragment: 空
#pageName: "页面"
}
现在(使用新的 Paginator::make())在集合中有 3 个项目
LengthAwarePaginator {#358 ▼
#总数:3
#lastPage: 2
#items:收藏{#368 ▼
#items: array:3 [▼
0 => News {#369 ▶}
1 => News {#370 ▶}
2 => News {#371 ▶}
]
}
#perPage: 2
#currentPage: 1
#path: "http://jv.app/nl/nieuws"
#查询:[]
#fragment: 空
#pageName: "页面"
}
这里有什么问题?
【问题讨论】: