laravel - Laravel Eloquen ORM 无法正确返回模型的关系
问题描述
我正在创建一个 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
}
关于我可能会出错的任何想法?
解决方案
您必须在第二个参数中添加关系名称 for findOrFail
,在您的示例中可能类似于:
$fields = array_merge($request->relationships, $request->fields);
return $this->contacts::with($request->relationships)->findOrFail($request->id, $fields);
推荐阅读
- android - android studio中的java.util.ConcurrentModificationException?
- python - Python根据条件拆分列表值
- sql - 如何以 24 小时格式添加迄今为止的小时数
- vue.js - 更新 vuetify 后元素崩溃
- automation - OPC Ua 服务器如何从机器读取信号(数据)
- apache - 仅使用 .htaccess 为主域和子域配置 .htaccess
- php - 如何在 PhpStorm (JetBrains) 中使用条件块启用代码折叠?
- java - Android-TextView设置十进制值不正确打印逗号
- c++ - 类向量上的 C++ 编译问题
- angular - UI-grid 4.7.1 总是得到(错误:无法获取模板 ui-grid/cellEditor:[object Object])