You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Laravel中从JSON文件填充数据库种子数据?

Laravel 使用JSON文件填充数据库种子数据

1. 创建对应数据库表的迁移文件

首先生成迁移文件:

php artisan make:migration create_users_table

打开生成的迁移文件(位于database/migrations/目录),修改up()方法,定义与JSON数据匹配的表结构:

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->string('email')->unique();
        $table->integer('age');
        $table->timestamps();
    });
}

执行迁移创建表:

php artisan migrate

2. 编写Seeder类读取JSON数据并插入

首先生成Seeder类:

php artisan make:seeder UsersSeeder

将你的data.json文件放在database/seeds/json/目录下(如果没有json文件夹请自行创建)。然后打开生成的UsersSeeder.php文件,修改run()方法:

use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\File;

class UsersSeeder extends Seeder
{
    public function run()
    {
        // 读取JSON文件内容
        $json = File::get(database_path('seeds/json/data.json'));
        // 解码为数组
        $users = json_decode($json, true);

        // 批量插入数据
        DB::table('users')->insert($users);

        // 如果有对应的User模型,也可以用模型插入:
        // foreach ($users as $user) {
        //     \App\Models\User::create($user);
        // }
    }
}

最后执行Seeder填充数据:

php artisan db:seed --class=UsersSeeder

如果需要一次性运行所有Seeder,可以在DatabaseSeeder.php的run()方法中添加:

$this->call(UsersSeeder::class);

然后执行:

php artisan db:seed

内容的提问来源于stack exchange,提问作者Muhammed Salama

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 05:27:03