Laravel API ResourceCollection - 调用未定义的方法 Illuminate\Database\Eloquent\Builder::mapInto()
Posted
技术标签:
【中文标题】Laravel API ResourceCollection - 调用未定义的方法 Illuminate\\Database\\Eloquent\\Builder::mapInto()【英文标题】:Laravel API ResourceCollection - Call to undefined method Illuminate\Database\Eloquent\Builder::mapInto()Laravel API ResourceCollection - 调用未定义的方法 Illuminate\Database\Eloquent\Builder::mapInto() 【发布时间】:2019-03-27 01:47:07 【问题描述】:我在 web.php 中定义了以下路由,以返回我在 DB 中的异常记录列表:
use App\Excepcion;
use App\Http\Resources\Excepcion as ExcepcionResource;
(...)
Route::get('/list/excepciones', function ()
return ExcepcionResource::collection(Excepcion::where('active', '1'));
);
但我收到以下服务器错误:
Call to undefined method Illuminate\Database\Eloquent\Builder::mapInto()
如果我将其更改为Excepcion::all()
,它就可以正常工作。所以,我不确定为什么我不能使用 where 条件或范围。如何在这里过滤结果?
【问题讨论】:
【参考方案1】:您忘记调用get
来获取集合,如下所示:
return ExcepcionResource::collection(Excepcion::where('active', '1')->get());
【讨论】:
我觉得那里有一些明显的东西。谢谢。【参考方案2】:作为记录,如果您在 resourceCollection(或其他任何地方)中调用关系,请不要忘记必须省略括号:
MyResource::collection($this->relation);
不是
MyResource::collection($this->relation());
因为关系不是模型的方法,而是属性。
【讨论】:
以上是关于Laravel API ResourceCollection - 调用未定义的方法 Illuminate\Database\Eloquent\Builder::mapInto()的主要内容,如果未能解决你的问题,请参考以下文章
Laravel + React,使用 Laravel 身份验证的 api