【问题标题】:Laravel Eloquen ORM can't return a model's relationship properlyLaravel Eloquent ORM 无法正确返回模型的关系
【发布时间】:2021-11-17 20:21:31
【问题描述】:

我正在创建一个 API。在这个存储库中有一个名为 show() 的方法,其中返回了一个联系人。用户必须提供联系人的 ID,并且可以提供要加载的关系数组和联系人属性数组(称为字段)。

return $this->contacts::with($request->relationships)->findOrFail($request->id, $request->fields);

但是当提供$request->fields 时,所有关系都返回null。

请求的 Json:

{
    "id": 75,
    "fields": ["id", "name"],
    "relationships": ["lead", "phone", "email", "address"]
}

响应的 Json:

{
    "id": 75,
    "name": "Edgard Cesar Bertelli dos Reis",
    "lead": null,
    "phone": null,
    "email": null,
    "address": null
}

对我可能出错的地方有什么想法吗?

【问题讨论】:

    标签: laravel eloquent orm relationship


    【解决方案1】:

    您必须在findOrFail 的第二个参数中添加关系名称,在您的示例中可能类似于:

    $fields = array_merge($request->relationships, $request->fields);
    return $this->contacts::with($request->relationships)->findOrFail($request->id, $fields);
    

    【讨论】:

      猜你喜欢
      • 2015-10-29
      • 2021-08-22
      • 2016-02-21
      • 2016-02-26
      • 2015-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多