-
-
Save wuiler/9fd3ca8fa5d58265b49ecfc45dd1e095 to your computer and use it in GitHub Desktop.
<?php | |
/** | |
* Gera a paginação dos itens de um array ou collection. | |
* | |
* @param array|Collection $items | |
* @param int $perPage | |
* @param int $page | |
* @param array $options | |
* | |
* @return LengthAwarePaginator | |
*/ | |
public function paginate($items, $perPage = 15, $page = null, $options = []) | |
{ | |
$page = $page ?: (Paginator::resolveCurrentPage() ?: 1); | |
$items = $items instanceof Collection ? $items : Collection::make($items); | |
return new LengthAwarePaginator($items->forPage($page, $perPage), $items->count(), $perPage, $page, $options); | |
} |
I solve it can access it from collect() function like collect([2=>'some think', 9 => 'Hi'])
so go to AppServiceProvider.php and past this in boot function
/** * Bootstrap any application services. * * @return void */ public function boot() { /** * Paginate a standard Laravel Collection. * * @param int $perPage * @param int $total * @param int $page * @param string $pageName * @return array */ Collection::macro('paginate', function($perPage, $total = null, $page = null, $pageName = 'page') { $page = $page ?: LengthAwarePaginator::resolveCurrentPage($pageName); return new LengthAwarePaginator( $this->forPage($page, $perPage)->values(), $total ?: $this->count(), $perPage, $page, [ 'path' => LengthAwarePaginator::resolveCurrentPath(), 'pageName' => $pageName, ] ); }); }
I solve it
collect( [ 2 => 'Some value', 5 => 'other value' ] )->paginate(15)
https://gist.github.com/freelance-github/fe8488ff19b1a7ed67223b15c7a25b52
Thanks !
Genius. You saved my life.
thank you very much
Thanks !
Thanks, it's working for me!
Thanks man! Your a genious.
Thank you !!
How can i use $collection->links()?
I got this error actually: Method Illuminate\Database\Eloquent\Collection::links does not exist.
PS: very intuitive solution!!
thanks
@MarcoSantana
I created a 'Utils/Utils.php' in the 'App' folder and kept every repeatedly used special function there.