【问题标题】:Errors on Laravel paginationLaravel 分页错误
【发布时间】:2019-06-26 07:56:19
【问题描述】:

我需要从数据库中获取特定字段,然后对结果进行分页,但我不确定在哪里放置->paginate()

我的代码如下:

Upload::where('sponsor_id', Request::segment(2))
        //->paginate(20)
        ->join('users', 'users.id', 'uploads.uploaded_by')
        ->orderBy('uploads.created_at', 'DESC')
        ->get([
            'uploads.filename',
            'users.first_name',
            'users.surname',
            'uploads.errors',
            'uploads.statistics',
            'uploads.created_at',
        ])

我没有分页就得到了正确的结果,但我想对结果进行分页。

【问题讨论】:

  • 您是否尝试在get() 上链接paginate()
  • @SujeetAgrahari,导致错误:Illuminate\Database\Eloquent\Collection::paginate 不存在。下面的 2 个答案可以解决问题。
  • 但是,我建议你看看这里以更好地理解stackoverflow.com/questions/27634790/…

标签: php laravel pagination


【解决方案1】:

首先,你需要使用select然后传入分页。

Upload::where('sponsor_id', Request::segment(2))           
        ->join('users', 'users.id', 'uploads.uploaded_by')
        ->orderBy('uploads.created_at', 'DESC')
        ->select('uploads.filename','users.first_name','users.surname',
             'uploads.errors',
            'uploads.statistics',
            'uploads.created_at')
        ->pagiate(10);

【讨论】:

    【解决方案2】:

    您可以使用select 方法过滤列。然后将paginate 方法放在查询的末尾。 最后你的查询将是这样的:

    Upload::where('sponsor_id', Request::segment(2))
        ->join('users', 'users.id', 'uploads.uploaded_by')
        ->orderBy('uploads.created_at', 'DESC')
        ->select(
            'uploads.filename',
            'users.first_name',
            'users.surname',
            'uploads.errors',
            'uploads.statistics',
            'uploads.created_at',
        )
        ->paginate(20);
    

    【讨论】:

      猜你喜欢
      • 2016-01-26
      • 1970-01-01
      • 2015-05-09
      • 1970-01-01
      • 1970-01-01
      • 2021-05-11
      • 1970-01-01
      • 2017-12-08
      • 2013-09-16
      相关资源
      最近更新 更多