La paginación de Laravel no funciona con la matriz en lugar de la colección

Estoy tratando de paginar un conjunto de datos de matriz y ha resultado ser más desafiante de lo que pensaba.

Estoy usando Laravel 5

Así que tengo una interfaz / repositorio abstracto al que se extienden todos mis otros modelos y creé un método dentro de mi repositorio abstracto llamado paginate. He incluido ambos

use Illuminate\Pagination\Paginator;

y

use Illuminate\Pagination\LengthAwarePaginator;

Aquí esta el método

  public function paginate($items,$perPage,$pageStart=1)
    {

        // Start displaying items from this number;
        $offSet = ($pageStart * $perPage) - $perPage; 

        // Get only the items you need using array_slice
        $itemsForCurrentPage = array_slice($items, $offSet, $perPage, true);

        return new LengthAwarePaginator($itemsForCurrentPage, count($items), $perPage,Paginator::resolveCurrentPage(), array('path' => Paginator::resolveCurrentPath()));
    }

Como se puede imaginar, esta función acepta una variedad de$items a $perPage variable que indica cuántos elementos hay que paginar y una$pageStart eso indica desde qué página comenzar.

La paginación funciona y puedo verLengthAwarePaginator instancia cuando estoy haciendo undd() , todos sus valores parecen estar bien.

El problema comienza cuando estoy mostrando los resultados.

Cuando lo hago{!! $instances->render() !!} La pantalla de enlaces del paginador está bien, elpage El parámetro cambia según los enlaces, pero los datos no cambian. Los datos son los mismos en todas las páginas. Cuando estoy usando Eloquent por ejemploModel::paginate(3) todo funciona bien, pero cuando yodd() estaLengthAwarePaginator es idéntico alLengthAwarePaginator instancia de mi paginador personalizado con la excepción de que pagina una serie de cursos y no una colección.

Respuestas a la pregunta(1)

Su respuesta a la pregunta