【发布时间】:2015-01-07 13:25:38
【问题描述】:
我正在从外部来源检索我的数据,因此必须手动构建分页。但是它只输出所有结果,起初我认为这可能是因为我的数组里面有 Objects 但似乎在这两种情况下都会发生。我做错了什么?
<?php
class MainController extends BaseController {
// Base controller specifies layout
// protected $layout = 'master';
public function index()
{
$this->layout->title = 'testing';
$this->layout->main = View::make('testing');
$objArray = array();
$entry = new \stdClass();
$entry->title = "testing";
$objArray[] = $entry;
$objArray[] = $entry;
$objArray[] = $entry;
$objArray[] = $entry;
$this->layout->main->paginated = Paginator::make($objArray, count($objArray), '2');
// var_dump($paginated->count()); // returns 4
$array = array(
array('title' => 'test'),
array('title' => 'test'),
array('title' => 'test'),
array('title' => 'test')
);
$this->layout->main->arrayPaginated = Paginator::make($array, count($array), '2');
// var_dump($arrayPaginated->count()); // returns 4
}
}
查看文件
## view/testing
@foreach($paginated as $entry)
{{$entry->title}}
@endforeach
{{$paginated->links()}} //outputs "testing" four times
@foreach($arrayPaginated as $entry)
{{$entry['title']}}
@endforeach
{{$arrayPaginated->links()}} //outputs "test" four times
【问题讨论】:
-
你的意思是只输出所有结果?
-
您必须对数组进行切片以进行分页。 array_slice
-
如果您使用
Paginator::make,您只需将应该为特定页面而不是所有元素显示的元素作为数组传递。当然,如果您从数据库中获取数据,则不必这样做,但如果您有一些需要手动创建的复杂数据,则需要自己完成 -
我需要自己构建分页部分吗?所以使用我的例子,我必须分解数组,所以它们每个只有 2 个条目?如果是这样,参数“每页的项目数”有什么用?
标签: php laravel laravel-4 pagination