Mr Robot
Mr Robot

Reputation: 897

Laravel 5.3 API Pagination

i'm working on an API, and i'm stuck at pagination first i should send only first 10 records later based on the limit value passed by user i should send the next 10 records

so for i did this

//search Drivers
public function getSearchList($limit) 
{
    //dd($limit);
    $drivers = Driver::paginate($limit)
               ->select('id','first_name','last_name','phone_number','registration_id')
               ->orderBy('first_name', 'asc')
               ->get();

    return Response::json([
        'data' => $drivers->all()
    ]);
}

but i'm getting error on requesting http://localhost:8000/api/v1/search-list/10

BadMethodCallException in Macroable.php line 74:
Method select does not exist.

i thing i'm not doing it right

looking forward for much needed help

thank you

Upvotes: 1

Views: 2386

Answers (2)

Danon
Danon

Reputation: 39

$drivers = Driver::
          select('id','first_name','last_name','phone_number','registration_id')
           ->orderBy('first_name', 'asc')
           ->paginate($limit);

Delete ; after paginate($limit)

https://laravel.com/docs/5.3/pagination

Upvotes: 1

Alexey Mezenin
Alexey Mezenin

Reputation: 163948

You should use paginate() method instead of get():

$drivers = Driver::select('id', 'first_name', 'last_name', 'phone_number', 'registration_id')
           ->orderBy('first_name', 'asc')
           ->paginate($limit);

Upvotes: 1

Related Questions