📜  laravel 从 csv 导入数据 - PHP (1)

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

Laravel 从csv导入数据 - PHP

在开发Web应用时,通常需要从其他来源导入数据。CSV(逗号分隔值)是一个流行的文件格式,常用于数据交换。Laravel提供了一种简单的方法来从CSV文件导入数据,并且可以轻松处理和存储数据。

准备

在开始Laravel导入CSV数据之前,确保已经安装好了Laravel并且正确配置了数据库。此外,您还需要一些CSV格式的样本数据。

导入CSV数据
  1. 首先,在Laravel应用程序中创建一个路由,该路由指向导入控制器方法。您可以在routes/web.php文件中添加以下代码:
Route::get('/import', 'ImportController@import');

这将创建一个GET路由,该路由将访问ImportController的import方法。

  1. 创建导入控制器。在Laravel应用程序的控制器目录中,创建一个名为ImportController.php的新控制器。在该控制器中,添加以下代码:
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Product;

class ImportController extends Controller
{
    public function import()
    {
        $file = public_path('data.csv');
        $csvData = file_get_contents($file);

        $csvLines = preg_split("/(\r|\n)/", $csvData);

        $csvHeaders = str_getcsv(array_shift($csvLines));

        foreach ($csvLines as $csvLine) {
            $csvFields = str_getcsv($csvLine);

            $data = array_combine($csvHeaders, $csvFields);

            Product::create($data);
        }

        return "Import Successful!";
    }
}

在上述代码中,我们从名为“data.csv”的CSV文件中读取数据,并使用Product模型将数据保存到数据库中。请记得更改$csvHeaders变量,以适应您的CSV文件格式。

  1. 确保您的CSV文件与预期格式相符。在本例中,CSV数据包括以下列:name、description、price、quantity。

  2. 运行Laravel应用程序并访问导入路由。在本例中,您可以在浏览器中输入以下URL:http://your-app/import。如果导入成功,您应该会看到“Import Successful!”的消息。

结论

现在,您已经学会了如何使用Laravel从CSV文件中导入数据。借助Laravel的强大功能,处理CSV数据变得容易且便捷。