在 Laravel 中对集合应用分页时出错

问题描述

在 laravel 中对集合应用分页时出错 -> 方法 Illuminate\Support\Collection::paginate 不存在。

 public static function search_query($query)
 {

$users = Searchy::search('snippets')->fields('snippets_name','SEO_description','snippets_description','snippet_tags')->query($query)
->getQuery()->get();
$collection = (new Collection($users))->paginate(20);
return $collection;
 
}

解决方法

你可以这样试试:

$users = Searchy::search('snippets')->fields('snippets_name','seo_description','snippets_description','snippet_tags')->query($query)
    ->getQuery()->paginate(20);
    $collection = (new Collection($users))->response()->getData(true);
,

builder 上的 get() 方法正在返回集合。建议在 builder 上使用 paginate 来获取 Paginator 实例。如果可以解决您的问题,请尝试使用以下代码。请参阅docs

中的更多信息
public static function search_query($query) {
    //create a builder for your query.
    $users = Searchy::search('snippets')
                    ->fields('snippets_name','snippet_tags')
                    ->query($query)
                    ->getQuery();

    $collection = $user->paginate(20);

    return $collection; 
}