【问题标题】:Method Illuminate\Support\Collection::paginate does not exist方法 Illuminate\Support\Collection::paginate 不存在
【发布时间】:2021-04-27 13:18:08
【问题描述】:

我有这个代码:

$transactions = DB::table('transactions')
        ->join('orders', 'transactions.order_id', '=', 'orders.id')
        ->get()->paginate(5);


return view('transactions.index', ['transactions' => $transactions]);

导致此错误的代码:

方法 Illuminate\Support\Collection::paginate 不存在

【问题讨论】:

  • 我不确定,只是尝试删除 get() 方法并仅使用 paginate(5) 。希望它会帮助你。因为有一些返回类型问题。
  • ->get() 返回集合,而 ->paginate() 要求查询生成器。

标签: php laravel function pagination controller


【解决方案1】:

尝试以下查询

 $transactions = DB::table('transactions')->join('orders', 'transactions.order_id', '=', 'orders.id')->paginate(5);

从查询中删除 get()

【讨论】:

  • 仍然有错误不显示分页
  • 你能解释一下你现在面临的错误吗?
【解决方案2】:

get 方法后不能使用paginate,请使用以下代码

$transactions = DB::table('transactions')
    ->join('orders', 'transactions.order_id', '=', 'orders.id')
    ->paginate(5);
return view('transactions.index', ['transactions' => $transactions]);

【讨论】:

  • 还是有同样的问题,不显示分页
  • 您是否在视图文件中调用了links()?
【解决方案3】:

Laravel 集合不支持分页,但 db 查询支持,所以你必须告诉你的查询对集合进行分页:

$transactions = DB::table('transactions')
        ->join('orders', 'transactions.order_id', '=', 'orders.id')->paginate(5);

【讨论】:

  • 还是一样的问题,不显示分页
猜你喜欢
  • 2020-11-20
  • 2022-01-22
  • 2020-06-09
  • 2019-05-25
  • 2020-08-16
  • 2020-08-29
  • 2019-12-11
  • 2020-02-04
  • 2021-05-27
相关资源
最近更新 更多