Laravel,从api获取数据并将其保存在数据库中[关闭]

Posted

技术标签:

【中文标题】Laravel,从api获取数据并将其保存在数据库中[关闭]【英文标题】:Laravel, get data from api ans save it in database [closed] 【发布时间】:2021-10-21 05:05:01 【问题描述】:

我安装了 guzzle laravel 包,并显示来自 api 的数据。我想将此数据保存在数据库中。我找不到足够的资源来做这件事

route

controller

response

【问题讨论】:

到目前为止你尝试了什么? 我尝试显示来自 api 的原始数据,我成功了。然后我只发布了一个(客户的)数据,我试图保存,但我不能。但我想先保存数据然后再显示。你不会有一个例子 @OthmaneHaddouche Aless55 的意思是您必须将您尝试过的代码添加到您的问题中。这样我们就可以帮助您编写代码。 您想从 API 中获取数据并将其放入您的数据库中吗? 控制器类 RequestController 扩展控制器 public function getAllOrders(Request $request) $client = new \GuzzleHttp\Client(); $res=$client->request('GET', 'nextimes.dz/wp-json/wc-analytics/orders', ['auth' => ['ck_e53c61c53e04fe95cefd9b6ecbd1323e3470b4d6', 'cs_c737add5943fec2ede120c266c6f9ecbd41973c9']]); $jsonArray = json_decode($res->getBody()->getContents(), true);返回 $jsonArray; Route::get('/orders',[RequestController::class,'getAllOrders']);这就是我获取所有数据的方式,我想将一些数据保存在我的数据库中 【参考方案1】:
public function all() 
    $response = $client->request('GET', 'http://api'); // Pass the third parameter as an array if you have to set headers
    $response = json_decode($response->getBody(), true); // The API response data

    // You should put your data in the loop.
    $data = collect($response); // So we create an collection to use helper methods
    $data->map(function ($item) 

        // Now, we can save the data to the database with two methods

        // Model:
        YourModel::create([
            'column' => $item['key'],
        ]);

        // Query builder:
        DB::table('your_table')->insert([
            'column' => $item['key'],
        ]);
    );

【讨论】:

非常感谢我可以通过这个链接将我的数据添加到数据库中:devdojo.com/bobbyiliev/…

以上是关于Laravel,从api获取数据并将其保存在数据库中[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Web Api 获取请求和响应并将其保存到数据库

是否可以使用 IF 语句从数据库中获取数据并将其保存到字符串中?

Laravel Eloquent:获取嵌套关系中的数据总和并将其添加为新属性

从电脑获取当前时间并将其保存在数据库中

如何从 API 转换一些 RAW 数据并将其保存到变量中,以便我可以在 C# 中使用它们

Laravel 中是不是有任何方法可以在外部 API 中验证用户并将其保存到本地会话,以便我可以使用所有 User:: 和 Auth:: 函数?