2016-07-22 28 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。你知道使用這個選項嗎? –