📜  如何在 laravel 中制作 db 播种器 - PHP (1)

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

如何在 Laravel 中制作 DB 播种器

数据库种子(Seeders)是 Laravel 框架的一个特性,它们允许开发人员向数据库中插入静态数据。

在本文中,我们将学习如何在 Laravel 中创建和使用数据库播种器,以及了解如何使用命令行工具和 Artisan 命令进行数据库播种和重置。

创建数据库播种器

首先,我们需要创建一个新的数据库种子类。要创建它,请使用 Artisan 命令:

php artisan make:seeder UsersTableSeeder

这会在 database/seeds 目录中创建一个名为 UsersTableSeeder.php 的新文件。在这个文件中,我们将定义插入到 users 表中的静态数据。

现在让我们看看 UsersTableSeeder.php 文件的结构:

<?php

use Illuminate\Database\Seeder;

class UsersTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        //
    }
}

在这个文件中,我们可以看到 UsersTableSeeder 类继承了 Seeder 类,并实现了一个 run 方法。在这个方法中,我们将编写要在数据库中插入的代码。

插入子数据

现在,让我们编写一些代码,将静态数据插入到 users 表中。在这个例子中,我们要生成一些随机的用户数据。

use Illuminate\Database\Seeder;
use Faker\Factory as Faker;

class UsersTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        $faker = Faker::create();

        foreach (range(1, 10) as $index) {
            DB::table('users')->insert([
                'name' => $faker->name(),
                'email' => $faker->email(),
                'password' => bcrypt('password'),
            ]);
        }
    }
}

在上面的示例中,我们使用 Faker 库来生成随机的用户名和电子邮件地址。然后,我们将这些数据插入到 users 表中。

运行数据播种器

现在我们已经定义了用户种子,接下来,我们需要运行种子以将数据插入到数据库中。要运行种子,请使用 Artisan 命令:

php artisan db:seed --class=UsersTableSeeder

这个命令将运行 UsersTableSeeder 类,并将它的 run 方法中定义的数据插入到 users 表中。

你还可以运行 php artisan db:seed 命令来运行可以在 database/seeds 目录中找到的所有种子类。

重置数据库

有时,我们需要重置/清空数据库,以便重新播种数据。要做到这一点,请使用 Artisan 命令:

php artisan migrate:refresh --seed

这个命令将重新运行所有迁移,并运行所有种子类中的 run 方法来重新播种数据。

结论

在本文中,我们学习了如何在 Laravel 中创建和使用数据库播种器。我们还了解了如何使用 Artisan 命令和命令行工具来运行种子和重置/清空数据库。如果你是 Laravel 开发人员,那么这个特性非常值得你去使用,因为它可以帮助你快速地在数据库中插入静态数据。