📅  最后修改于: 2023-12-03 15:24:14.995000             🧑  作者: Mango
数据库种子(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 开发人员,那么这个特性非常值得你去使用,因为它可以帮助你快速地在数据库中插入静态数据。