Outils pour utilisateurs

Outils du site


devweb:laravel:collection (lu 6819 fois)

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision Les deux révisions suivantes
devweb:laravel:collection [08-04-2019 10:34]
edmc73 créée
devweb:laravel:collection [11-12-2019 10:13]
edmc73
Ligne 14: Ligne 14:
   $collect->whereLoose('id', 1)   $collect->whereLoose('id', 1)
  
 +
 +===== pagination =====
 +Rendre une collection paginable
 +
 +Ajouter ce code dans **app/Providers/AppServiceProvider.php**
 +
 +<code 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
 +            );
 +        });
 +    }
 +
 +</code>
 +
 +Ensuite, utiliser comme le paginate() de eloquent
 +
 +<code php>
 +$data = collect($myArray);
 +$data = $data->paginate(10);
 +
 +</code>
devweb/laravel/collection.txt · Dernière modification: 26-01-2023 18:05 de edmc73