📜  如何将数据从 api 保存到 laravel - PHP (1)

📅  最后修改于: 2023-12-03 15:38:45.744000             🧑  作者: Mango

如何将数据从 API 保存到 Laravel - PHP

在开发 web 应用程序时,从第三方 API 获取数据是非常常见的。这些数据可以是来自社交网络、新闻网站、电子商务网站等等。

在本文中,我们将介绍如何使用 Laravel 将从 API 中获取的数据保存到数据库中。我们将涵盖以下主题:

  • 使用 GuzzleHttp 从 API 获取数据
  • 将数据保存到 Laravel 中的数据库
  • 编写控制器和视图以显示这些数据
从 API 获取数据

Laravel 内置了一个 GuzzleHttp 的 HTTP 客户端,它允许您轻松地发送 HTTP 请求和处理响应。以下代码演示了如何使用 GuzzleHttp 发送 GET 请求以从 API 获取数据:

use GuzzleHttp\Client;

$client = new Client(['base_uri' => 'https://api.example.com']);

$response = $client->request('GET', '/api/data');

$data = json_decode($response->getBody(), true);

在这个例子中,我们使用 GuzzleHttp 客户端发送了一个 GET 请求,并将响应中的数据转换成了一个 PHP 数组。

将数据保存到数据库

一旦我们从 API 中获取了数据,我们就可以将其保存到我们的数据库中。假设我们在 Laravel 中有一个名为 Item 的模型,它具有 name 和 description 属性。我们可以使用以下代码保存从 API 获取的数据到此模型中:

use App\Item;

foreach ($data as $item) {
    Item::create([
        'name' => $item['name'],
        'description' => $item['description']
    ]);
}

在这个例子中,我们将从 API 获取的数据循环遍历并使用 create 方法保存到 Item 模型中。create 方法将自动创建一个新的数据库记录。

编写控制器和视图

现在我们已经将数据保存到数据库中,我们可以编写一个控制器和视图来显示这些数据。

首先,我们要创建一个 ItemsController 控制器:

php artisan make:controller ItemsController

然后,我们在控制器中创建一个方法来获取保存的数据并将其传递给一个视图:

use App\Item;

class ItemsController extends Controller
{
    public function index()
    {
        $items = Item::all();
    
        return view('items.index', compact('items'));
    }
}

在这个例子中,我们使用 all 方法从 Item 模型中获取所有数据,并将其传递给一个名为 index 的视图。

最后,我们创建一个 items/index.blade.php 视图文件,以显示保存的数据:

<ul>
    @foreach ($items as $item)
        <li>{{ $item->name }} - {{ $item->description }}</li>
    @endforeach
</ul>

在这个例子中,我们循环遍历所有保存的数据,并显示每个项目的名称和描述。

总结

在本文中,我们介绍了从第三方 API 获取数据并将其保存到 Laravel 中的数据库的方法。我们还展示了如何编写一个控制器和视图来显示这些数据。有了这些知识,你现在可以集成许多不同的 API 到你的 Laravel 应用程序中。