📜  laravel 种子迁移 - PHP (1)

📅  最后修改于: 2023-12-03 14:43:49.240000             🧑  作者: Mango

Laravel 种子迁移 - PHP

Laravel 种子迁移(Seed Migration)是 Laravel 框架中的一种数据填充方式,用于数据库中预先填充数据,以便在开发、测试和演示过程中使用。本篇文章将介绍 Laravel 种子迁移的一些基本概念以及使用方法。

前置条件

在学习 Laravel 种子迁移之前,必须先熟悉如何在 Laravel 中创建数据库迁移。

创建种子迁移

要创建种子迁移,可以使用以下 Artisan 命令:

php artisan make:seeder UserSeeder

上面的命令将在 database/seeds 目录下创建一个名为 UserSeeder 的种子迁移文件。在该文件中,您可以使用 run 方法填充数据库。

public function run()
{
    DB::table('users')->insert([
        'name' => 'John Doe',
        'email' => 'john@example.com',
        'password' => Hash::make('password'),
    ]);
}

上面的示例将创建一个名为 users 的表并在该表中插入一行数据。

运行种子迁移

要运行种子迁移,可以使用以下 Artisan 命令:

php artisan db:seed [--class[=CLASS]] [--database[=DATABASE]] [--force] [--no-interaction] [--pretend] [--seed]

如果没有指定 --class 选项,则将运行所有种子迁移。如果指定了 --class 选项,则只运行指定的种子迁移。

php artisan db:seed --class=UserSeeder

上面的命令将运行名为 UserSeeder 的种子迁移。

编写种子迁移示例

以下示例演示如何在 Laravel 中使用种子迁移创建一个名为 roles 的表并填充数据:

<?php

use Illuminate\Database\Seeder;

class RoleSeeder extends Seeder
{
    public function run()
    {
        DB::table('roles')->insert([
            ['name' => 'admin'],
            ['name' => 'editor'],
            ['name' => 'user'],
        ]);
    }
}

将该文件保存为 RoleSeeder.php 并运行以下 Artisan 命令:

php artisan db:seed --class=RoleSeeder

这将创建一个名为 roles 的表,并在该表中插入三个行,分别表示 admineditoruser 角色。

总结

Laravel 种子迁移是一种便捷的数据填充方式,可用于在开发、测试和演示过程中填充数据库。本篇文章介绍了种子迁移的创建、运行和示例,希望对您在使用 Laravel 时有所帮助。