首页 > 解决方案 > LARAVEL 调用未定义的方法 Illuminate\Database\Eloquent\Builder::splice()

问题描述

我正在尝试选择表 Animals 的一些属性,同时选择他们的照片。

问题是,在我的情况下,我想根据页面选择 20 只动物(例如,如果我在第 2 页,我想选择 20-40 之间的动物

我正在为此做一个拼接,但我不知道如何让它工作,它给我带来了那个错误。

任何人都知道为什么或如何?

提前谢谢了! 代码

$cantidad 是我要带走的动物数量 $pagina 是页面

标签: phpmysqllaravel

解决方案


您需要了解您正在使用的课程,尤其是BuildervsCollection

Laravel ( Animal::select(...)) 中的所有查询都是该类的实例,Builder直到调用闭包 ( ->get(),->first()等)。由于您在调用 之前没有使用这些闭包之一->splice(),因此您试图在Builder没有它的类 ( ) 上调用此方法。该类Collection有这个方法:

https://laravel.com/docs/7.x/collections#method-splice

所以你需要使用->get()before ->splice()

return Animal::select(...)
->join(...)
->where(...)
->get()
->splice(...)
->toJson();

推荐阅读