[英]laravel save json to database mysql
我在将 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']
数组,创建一个结构化的数组数组,以传递给Rating::insert()
方法 ( docs )。
$data = json_decode($response, true);
$ratingKeys = [];
foreach($data['retorno']['pedidos'] as $o){
$ratingKeys[] = ['ratingKey' => $o['pedido']['id']];
}
Rating::insert($ratingKeys);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.