Ceci est une ancienne révision du document !
Attention le where de Collection est différent du where de Eloquent. Il est strict avec un ===
!
Pour contourner le problème
Si votre ‘id’ est transformé en string par eloquent par exemple, un where(‘id’,1) ne fonctionnera pas. Pour assurer la compatibilité entre plusieurs serveurs :
$collect->where('id', 1, false)
ou
$collect->whereLoose('id', 1)
Rendre une collection paginable
Ajouter ce code dans app/Providers/AppServiceProvider.php
<?php namespace App\Providers; use Illuminate\Pagination\LengthAwarePaginator; use Illuminate\Pagination\Paginator; use Illuminate\Support\Collection; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider { /** * Bootstrap any application services. * * @return void */ public function boot() { Collection::macro('paginate', function(int $perPage = 15, $page = null, $options = []) { /** @var Collection $this */ $page = $page ?: (Paginator::resolveCurrentPage() ?: 1); return new LengthAwarePaginator( $this->forPage($page, $perPage)->values(), $this->count(), $perPage, $page, $options ); }); }
Ensuite, utiliser comme le paginate() de eloquent
$data = collect($myArray); $data = $data->paginate(10);