如何在laravel中使用pangination和sortByDesc功能?

扎卡里亚(Zakaria Mountassir)

我试图在我的laravel视图中使用分页我遇到了这个问题

方法Illuminate \ Database \ Eloquent \ Collection :: links不存在。(视图:C:\ wamp \ www \ project \ resources \ views \ demmande \ demmandes.blade.php)

这是我的控制器功能

public function ViewDemmandes(){
    $listdemmande=Demmande::paginate(10)->sortByDesc('created_at');
    $listvillee=Ville::all();
    $listcategorie=Categorie::all();

    $villes = $listvillee;
    $demmande = $listdemmande;
    $categorie = $listcategorie;

    return view("demmande.demmandes",compact('villes','categorie','demmande'));
}

但是当我删除像这样的sortByDesc函数时

public function ViewDemmandes(){
    $listdemmande=Demmande::paginate(3);
    $listvillee=Ville::all();
    $listcategorie=Categorie::all();

    $villes = $listvillee;
    $demmande = $listdemmande;
    $categorie = $listcategorie;

    return view("demmande.demmandes",compact('villes','categorie','demmande'));
}

它工作正常,请您能帮我解决这个问题吗

开发者

->paginate(10)返回的实例LengthAwarePaginator它实现了Collection拥有的所有方法->sortByDesc()是其中之一)。但是调用集合方法将返回基础集合,而不是paginator的实例。

因此,在您的情况下,您要使用从返回的集合来覆盖分页器->sortByDesc()

使用SQL而不是集合进行排序:

$listdemmande = Demmande::orderBy('created_at', 'DESC')->paginate(10);
// Or using `->latest()` shorthand:
// $listdemmande = Demmande::latest()->paginate(10);

如果有原因要在获取查询后进行排序,则可以仅覆盖基础集合的分页器:

$listdemmande = Demmande::paginate(10);
$listdemmande->setCollection($listdemmande->sortByDesc('created_at'));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章