Php laravel将json保存到数据库mysql

Php laravel将json保存到数据库mysql,php,laravel-5,Php,Laravel 5,我在将json结果保存到mysql数据库中的表时遇到问题 Json返回 { "retorno": { "status_processamento": 3, "status": "OK", "pagina": "1", "numero_paginas": "1", "pedidos": [ { "pedido": { "id": 123456, "numero": 123456,

我在将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['retrono']['pedidos']数组上迭代,创建一个数组的结构化数组,以传递给Rating::insert方法


此语法:$data['retrono']['pedidos']['pedido']['id']不起作用。您需要使用某种循环来迭代数据并构造一个可插入的数组,或者在所述循环中逐个插入。调用未定义的方法App\Rating::createMany@LucasSilva更新的answer.const版本='6.8.0';
$data = json_decode($response, true);

$ratingKeys = [];
foreach($data['retorno']['pedidos'] as $o){
    $ratingKeys[] = ['ratingKey' => $o['pedido']['id']];
}

Rating::insert($ratingKeys);