2016-07-22 4 views
0

Я пытаюсь разбивать страницы на массив, но я не могу, я искал информацию, но единственное, что я нашел, это разбиение на страницы данных, загружаемых из базы данных.Paginate custom array в 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

Вы можете использовать CakePHP Коллекции take() метод

class Cake\Collection\Collection 

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

Всякий раз, когда вы хотите взять кусочек коллекции использовать функцию take(), она будет создавать новую коллекцию, самое большее количество значений вы указываете в первом аргументе, начиная с позиции, переданной во втором аргументе:

 $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

Ну ... Это может быть вариантом, но я не реализую сама пагинацию, в других частях моего приложения, я использую Paginator of cakePhp. Знаете ли вы какой-либо вариант, используя это? –

Смежные вопросы