Laravel API ResourceCollection-调用未定义的方法Illuminate \ Database \ Eloquent \ Builder :: mapInto()

时间:2018-10-22 22:31:22

标签: laravel collections

我在web.php中定义了以下路由,以返回数据库中我的Excepcion记录的列表:

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条件或范围。如何在这里过滤结果?

2 个答案:

答案 0 :(得分:4)

您忘了打电话给get来获取收藏集,就像这样:

return ExcepcionResource::collection(Excepcion::where('active', '1')->get());

答案 1 :(得分:1)

为便于记录,如果您在resourceCollection(或其他任何地方)中调用关系,请不要忘记必须省略括号:

MyResource::collection($this->relation);

不是

MyResource::collection($this->relation());

因为关系不是模型的方法,而是属性。