2016-07-22 66 views
0

我想分页数组,但是我不能,我一直在寻找信息,但我唯一发现的是从数据库加载的数据的分页。在没有数据库的cakePhp 3.x中分页自定义数组

我有这样的:

$departments = $this->paginate($user->Departments); 
foreach ($departments as $d): 
    $processes = "... query ..."; 
    $processes = $this->paginate($processes); 
    foreach ($processes as $p): 
     $aux = array(
      "field1" => $d->name, 
      "field2" => $p->description, 
      array_push($results, $aux); 
    endforeach; 
endforeach; 
$this->set('departments', $results); 

我想分页是$results变量。 有什么想法?

非常感谢。

回答

0

每当你想利用集合的切片使用take()功能,您可以使用CakePHP集合take()方法

class Cake\Collection\Collection 

Cake\Collection\Collection::`take(int $size, int $from)` 

,它会创建值最多数量的新集合您在第一个参数中指定,从第二个参数中传递的位置开始:

 $items = array(); //array items 
     $collection = new Collection(items); 

     $topFive = $collection->sortBy('age')->take(5); 

     //Take 5 people from the collection starting from position 4 
     $nextTopFive = $collection->sortBy('age')->take(5, 4); 

Posi蒸发散是从零开始,因此第一位置号为0

http://book.cakephp.org/3.0/en/core-libraries/collections.html#CakeCollectionCollection::take

+0

嗯......这可能是一种选择,但我不执行分页本身,在我的应用程序的其他部分,我使用cakePhp的Paginator。你知道使用这个选项吗? –