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

【问题讨论】:

    标签: laravel collections


    【解决方案1】:

    您忘记调用get 来获取集合,如下所示:

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

    【讨论】:

    • 我觉得那里有一些明显的东西。谢谢。
    【解决方案2】:

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

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

    不是

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

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

    【讨论】:

      猜你喜欢
      • 2021-10-18
      • 2018-05-22
      • 2019-09-23
      • 2019-09-29
      • 2020-10-17
      • 2018-10-03
      • 1970-01-01
      • 2019-11-04
      • 1970-01-01
      相关资源
      最近更新 更多