Laravel 5.8将API数据保存到数据库

时间:2019-09-13 17:15:35

标签: mysql laravel api

我想将来自第三方api的数据存储到我的数据库中,听起来很基本,但有点困惑。

我的控制器中有这个

public function showTips()
    {
        $client = new Client(['headers' => ['Accept' => 'application/json']]); 
        $res = $client->request('GET', 'https://example.com/api/xxx/xxxapiKey=xxxx');
        $data = json_decode($res->getBody()->getContents());
        $events = $data->Data;
        dd($events);
        //return view('tips')->with(compact('events'));               
    }

我得到的数据:

array:2 [▼
  0 => {#8824 ▼
    +"timeLive": "76"
    +"matchID": "10482C5"

仅接收“ timeLive”数据并将其存储在MySQL表上,我需要做哪些更改? 每一个帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

您应该像这样循环foreach结果:

$data = json_decode($res->getBody()->getContents(),true);
    $events = $data['Data'];
foreach($events as $item)
{
 DB::table('your_table')->insert(['timeLive'=>$item['timeLive']])
}

女巫timeLive是表“ your_table”中的列

答案 1 :(得分:0)

以下内容会将timeLive值插入timevalue列:

\DB::table('my_table')->insert(collect($events)->map(function($item) {
    return ['timevalue' => $item->timeLive];
}));