Skip to content

Instantly share code, notes, and snippets.

@Repox
Created November 3, 2016 11:05
Show Gist options
  • Save Repox/7784159810681db92b87ca44d5a9464d to your computer and use it in GitHub Desktop.
Save Repox/7784159810681db92b87ca44d5a9464d to your computer and use it in GitHub Desktop.
Laravel 5 Pagination with transform
<?php
namespace App\Http\Controllers;
use App\User;
use Illuminate\Http\Request;
class PaginationController extends Controller
{
/**
* @param Request $request
* @return mixed
*/
public function index(Request $request)
{
// Results per page
$limit = 50;
// Creates an instance of Illuminate\Pagination\LengthAwarePaginator
$users = User::paginate($limit);
// getCollection() is a mathod available in Illuminate\Pagination\LengthAwarePaginator
// It retrivies the Collection instance the Paginator will iterate over, allowing you to
// use Collection methods. transform() modifies the collection itself.
$users->getCollection()->transform(function($user, $key) {
return [
'name' => $user->name,
'email' => $user->email,
'custom_attribute' => 'custom value',
];
});
return $result;
}
}
@untillnesss
Copy link

Nice broo @ManojKiranA

@ManojKiranA
Copy link

hope it helps

@AARP41298
Copy link

@ManojKiranAppathurai thank you

@ankit-ants
Copy link

thank you dude you save the day @ManojKiranA

@marcosppastor
Copy link

Check this out. I am using tap helper

$users = tap(User::query()
->paginate(100),function($paginatedInstance){
    return $paginatedInstance->getCollection()->transform(function ($value) {
        $value->test = 'test';
        return $value;
    });
});

thanks!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment