【问题标题】:Laravel 5.3 API PaginationLaravel 5.3 API 分页
【发布时间】:2017-06-06 11:51:40
【问题描述】:

我正在开发一个 API,但我被困在分页上 首先,我应该稍后根据用户传递的限制值只发送前 10 条记录,我应该发送 next 10 条记录

所以我这样做了

//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()
    ]);
}

但我在请求 http://localhost:8000/api/v1/search-list/10 时遇到错误

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

我觉得我做的不对

期待获得急需的帮助

谢谢

【问题讨论】:

    标签: php laravel api laravel-5.3 laravel-pagination


    【解决方案1】:

    您应该使用paginate() 方法而不是get()

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

    【讨论】:

    • 非常感谢你们一如既往的棒,如果数据只有120,你能告诉我如何显示消息not found如果他们输入类似555的信息,谢谢
    • @MrRobot 只需添加类似if (count($drivers) == 0) { // There is no data }
    • 我想发送接下来的 10 个而不是最后发送的 10 个值
    【解决方案2】:
    $drivers = Driver::
              select('id','first_name','last_name','phone_number','registration_id')
               ->orderBy('first_name', 'asc')
               ->paginate($limit);
    

    paginate($limit)之后删除;

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

    【讨论】:

    • 非常感谢您抽出宝贵的时间非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-13
    • 2017-04-28
    • 2017-01-26
    • 2017-01-12
    • 1970-01-01
    • 1970-01-01
    • 2017-01-18
    相关资源
    最近更新 更多