【发布时间】:2019-12-24 06:03:52
【问题描述】:
我在将 json 结果保存到 mysql 数据库中的表时遇到问题。
Json 返回
{ "retorno": {
"status_processamento": 3,
"status": "OK",
"pagina": "1",
"numero_paginas": "1",
"pedidos": [
{
"pedido": {
"id": 123456,
"numero": 123456,
"numero_ecommerce": "12",
"data_pedido": "01/01/2013",
"data_prevista": "10/01/2013",
"nome": "Cliente Teste",
"valor": "100.25",
"id_vendedor": "123456",
"nome_vendedor": "Vendedor Teste",
"situacao": "Atendido"
}
},
{
"pedido": {
"id": 123456,
"numero": 123458,
"numero_ecommerce": "15",
"data_pedido": "01/01/2013",
"data_prevista": "10/01/2013",
"nome": "Cliente Teste 3",
"valor": "50.25",
"id_vendedor": "",
"nome_vendedor": "",
"situacao": "Aberto"
}
}
]
}
}
型号
namespace App;
use Illuminate\Database\Eloquent\Model;
class Rating extends Model
{
protected $fillable = [
'ratingKey'
];
}
控制器
$data = json_decode($response, true);
Rating::create(
[ 'ratingKey' => $data['retorno']['pedidos'][0]['pedido']['id'] ]);
此代码完美运行,但仅保存来自 json 的一个答案,我想保存所有答案,如果我将代码更改为
'ratingKey' => $data['retorno']['pedidos'][]['pedido']['id']
我收到这个错误
Symfony\Component\Debug\Exception\FatalErrorException 无法使用 [] 阅读
【问题讨论】:
-
此语法:
$data['retorno']['pedidos'][]['pedido']['id']不起作用。您需要使用某种循环来迭代数据并构造一个可行的数组以进行插入,或者在所述循环中一个接一个地插入。