====== Collection ====== ===== where ===== 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) ===== pagination ===== Rendre une collection paginable Ajouter ce code dans **app/Providers/AppServiceProvider.php** forPage($page, $perPage)->values(), $this->count(), $perPage, $page, $options ); $lap->setPath(url()->current()); return $lap; }); } Ensuite, utiliser comme le paginate() de eloquent $data = collect($myArray); $data = $data->paginate(10); ===== sort sur plusieurs champs ===== Si c'était une requête sql SELECT * FROM `liste_programmes` ORDER BY `date_version` DESC, `order`, `nom` $filtre_programme=collect($filtre_programme)->sortBy( function($p){ return [ - strtotime($p->date_version), $p->order, $p->nom, ]; })->values(); Trier comme on veut $permissions = $permissions->sortBy(function($p){ switch ($p->role) { case "administrator": return "A"; break; case "assigner": return "B"; break; case "assignable": return "C"; break; default: return "Z"; break; } });