MrRobot21's avatar

Laravel 5.3 API Pagination

Hi Awesome People

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

0 likes
1 reply
meSingh's avatar
meSingh
Best Answer
Level 4

Paginate is supposed to be the last method that you call when building a query. So in your case try using this code:

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

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

BTW: you also have a semicolon after paginate method, which is actually causing the error.

1 like

Please or to participate in this conversation.