chahal's avatar

Pagination with Laravel API Resource

Hi guys, I need to send pagination data in response

Here is my controller

    public function list(Request $request)
    {
        $jobs = $request->user()->jobs()->paginate(2);

        $jobs = $jobs->map(fn($job)  => new JobResource($job));

        return response([
            'message' => 'Employer jobs',
            'data' => $jobs
        ]);
    }

And here is resource

    public function toArray(Request $request): array
    {
        return [
            'id' => $this->id,
            'title' => $this->title,
            'description' => $this->description,
            'salary' => $this->salarySlot,
            'experience' => $this->experienceSlot,
            'created_at' => $this->created_at,

        ];
    }
0 likes
1 reply
jaseofspades88's avatar
Level 51

Take a look at the documentation: https://laravel.com/docs/10.x/eloquent-resources#pagination

You can do the following

use App\Http\Resources\UserCollection;
use App\Models\User;
 
Route::get('/users', function () {
    return new UserCollection(User::paginate());
});

Which would translate for you to something like this...

return new JobResource($request->user()->jobs()->paginate(2));

Please or to participate in this conversation.