我有一个外部api,它向我的服务器发送POST,POST主体以json响应作为数组进入
{
"IDs": [
1378143,1378141,1971403,1451025,1451026,1374561,1378036,1371423,1371424,
1971568,1371426,1718539,1718515,1831163,1718540,1362068,1376341,1378221,
1378222,1378220,1380468,1380467,1417322,1385612,1971567
]
}
我将帖子保存如下:
$Id = new IdModel();
$Id->id = $request['IDs'];
$Id->save();
这将我的数据库列id中的数组保存为" Array"如何才能保存数组中的所有值而不是单词Array?
答案 0 :(得分:1)
使用属性转换。打开 IdModel 模型并添加:
protected $casts = [
'id' => 'array'
];
每次从数据库获取数组时,每次将数据保存到数据库时,都会转换数组。
答案 1 :(得分:0)
$Id = new IdModel();
$IDs = '';
foreach($request['IDs'] as $id) {
$IDs.= ',' . $id;
}
$Id->id = $IDs;
$Id->save();
您在IDs属性中的内容是一个数组,您应该使用foreach迭代您的数组并连接每个ID以将其保存在您的数据库中。
如果要为每个ID创建一行,则应使用:
foreach($request['IDs'] as $id) {
$newId = new IdModel();
$newId->id = $id;
$newId->save();
unset($newId);
}
答案 2 :(得分:0)
只需在循环中添加代码
foreach($request['IDs'] as $id) {
$obj = new IdModel();
$obj->id = $id;
$obj->save();
}
答案 3 :(得分:0)
我将数据类型更改为@TheFallen建议的JSON,现在可以使用了。 感谢大家的帮助和意见。