【问题标题】:How to send pageNumber & pageSize in query parameter - using Laravel如何在查询参数中发送 pageNumber 和 pageSize - 使用 Laravel
【发布时间】:2019-09-03 09:58:39
【问题描述】:

这是我的 API 网址:

        {{base_url}}all_department ( GET REQUEST ) 

我的控制器代码:

              public function getAllDepartment(Request $request)
{
    $pagination=false;
    $pageNumber=$pageSize="";
    if ($request->has('pageNumber') && $request->has('pageSize')){
        $pagination=true;

        $pageNumber= $request->pageNumber;
        $pageSize= $request->pageSize;
    }
    try
    {
        $department = $this->department;
        $allDepartment = Department::all();

        if ($pagination){
            $offset = ($pageNumber - 1) * $pageSize;
            $results=$department->offset($offset)->limit($pageSize)->orderBy('department_id','DESC')->get();

        }
        else{
            $results=$department->get();
        }
        return response(['status' => true, 'message' => 'All Department', 'total' => count($allDepartment), 'data' => $results], 200);
    }catch (\Exception $ex) {
        return response(['status' => false, 'message' => 'Validation Errors', 'errors' => $ex->getMessage()], 500);
    }

}

我的身体要求:

      {
"pageNumber": 1,
"pageSize": 3
       }

我要做的是在 URL 中发送 pageNumber 和 pageSize,如下所示

        {{base_url}}all_department/pageNumber/pageSize

如何在参数而不是正文请求中做到这一点?

【问题讨论】:

  • 我想这就是你所追求的:laravel.com/docs/5.8/routing#required-parameters
  • 使 pageNumber 和 pageSize 成为可选参数,方法是在您的路由中指定它,例如 all_departments/{?pageNumber}/{?pageSize} 但是如果您想访问例如特定的像 all_departments/{id} 这样的部门并不是一个可靠的方法。我建议你使用这样的参数:all_departments?pageNumber={pageNumber}&pageSize={pageSize}

标签: php laravel pagination offset query-parameters


【解决方案1】:

你可以使用:

request()->segment(1); or Request::segment(1);

它将获取 URL 中的第一段,因此您可以更改数字以获得所需的内容

【讨论】:

    猜你喜欢
    • 2021-10-10
    • 2020-06-17
    • 2017-10-27
    • 1970-01-01
    • 1970-01-01
    • 2023-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多