php - Laravel Eloquent 在单个键值对中获取所有内容
问题描述
我有两个表posts
,post_metas
架构如下:
POSTS
+------------+------------------+
| Field | Type |
+------------+------------------+
| id | int(10) unsigned |
| title | varchar(255) |
| content | longtext |
POST_METAS
+------------+------------------+
| Field | Type |
+------------+------------------+
| id | int(10) unsigned |
| post_id | int(10) unsigned |
| key | varchar(255) |
| value | longtext |
使用简单的一对多关系,我得到了这个输出
[
{
"id": 1,
"title": "Dibbert LLC",
"content": null,
"post_metas": [
{
"key": "code",
"value": "YSRSLBZ7"
},
{
"key": "agent_id",
"value": "32"
}
]
}
]
我想知道是否可以将帖子元数据作为对象而不是数组,就像这样:
[
{
"id": 1,
"title": "Dibbert LLC",
"content": null,
"post_metas": {
"code": "YSRSLBZ7",
"agent_id": "32"
}
}
]
解决方案
您无法更改 Eloquent 返回关系集合的方式,也不应该更改,但您当然可以在响应中操纵集合:
$model->post_metas->pluck('value', 'key');
阅读所有可用的收集方法。
推荐阅读
- sql - 查询根据 PARALLEL 提示返回不同的结果
- java - Android:使用 RxJava 的 API 调用返回空响应
- matlab - 大矩阵中的空单元格问题:MATLAB
- django - 生产中的 Django 迁移问题
- python - 如何(Python 从 json 对象数组迭代)
- docker - 如何分发 docker-compose 文件?
- c - 我可以使用 `va_list` 两次,如下所示:
- javascript - 使用 javascript 和 php 登录帐户时无法重定向
- python - Python:叶地图没有出现
- typescript - 如何在打字稿中获得严格的值类型?